none
asp:RegularExpressionValidator RRS feed

  • Pergunta

  • Boa tarde Galera,

    Eu tenho um campo(textBox) de data e estou utilizando o "<asp:RegularExpresseionValidator>" para validar a data (somente dia e mês).

    Gostaria de saber como eu faço para validar esse campo somente se ele estiver preenchido? Pois esse campo não é obrigatório. E quando o usuário clica nele e vai pra outro campo, aparece a mensagem de "Data inválida".

    Código:

    <td>
                                    <asp:TextBox ID="txtAniversario" runat="server" MaxLength="20" Width="150px"></asp:TextBox>
                                    <cc1:MaskedEditExtender ID="meetxtAniversario" runat="server" AutoComplete="False"
                                        ClearMaskOnLostFocus="False" ClearTextOnInvalid="True" CultureName="pt-BR" Mask="99/99"
                                        MaskType="Number" TargetControlID="txtAniversario" 
                                        InputDirection="RightToLeft">
                                    </cc1:MaskedEditExtender>
                                    <asp:RegularExpressionValidator ID="rfvAniversario"
                                        runat="server" ErrorMessage="Data inválida." 
                                        ControlToValidate="txtAniversario" 
                                        ValidationExpression="^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])$"></asp:RegularExpressionValidator>
                                </td>

    Aguardo..

    segunda-feira, 27 de janeiro de 2014 20:24

Respostas

  • teste se o valor de seus txtBoxes é = "" ou Not ="" Ex:

    if txtData.Text = "" then

    'aqui vai seu código de teste

    end If

    if Not txtData.Text = "" then

    'aqui vai seu código de teste

    end If


    Atenciosamente, Marcio Nogueira Cardoso Pinto.

    • Marcado como Resposta Jamille Moreira terça-feira, 28 de janeiro de 2014 21:50
    terça-feira, 28 de janeiro de 2014 15:07
  • Jamille, como você está usando a propriedade ClearMaskOnLostFocus no masked, você terá que alterar sua expressão regular de:

    ^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])$

    Para:

    ^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])|__/__$

    Assim você estará dizendo ao validador para considerar como correto também a mascara que fica no textbox.

    • Marcado como Resposta Jamille Moreira terça-feira, 28 de janeiro de 2014 21:49
    terça-feira, 28 de janeiro de 2014 19:58

Todas as Respostas

  • teste se o valor de seus txtBoxes é = "" ou Not ="" Ex:

    if txtData.Text = "" then

    'aqui vai seu código de teste

    end If

    if Not txtData.Text = "" then

    'aqui vai seu código de teste

    end If


    Atenciosamente, Marcio Nogueira Cardoso Pinto.

    • Marcado como Resposta Jamille Moreira terça-feira, 28 de janeiro de 2014 21:50
    terça-feira, 28 de janeiro de 2014 15:07
  • Em qual método da  página eu coloco esse If, por que não esta dando certo.

    terça-feira, 28 de janeiro de 2014 19:11
  • Jamille, como você está usando a propriedade ClearMaskOnLostFocus no masked, você terá que alterar sua expressão regular de:

    ^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])$

    Para:

    ^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])|__/__$

    Assim você estará dizendo ao validador para considerar como correto também a mascara que fica no textbox.

    • Marcado como Resposta Jamille Moreira terça-feira, 28 de janeiro de 2014 21:49
    terça-feira, 28 de janeiro de 2014 19:58
  • Obrigada Cleiton
    terça-feira, 28 de janeiro de 2014 21:50