Usuário com melhor resposta
Controle de validação

Pergunta
-
Boa tarde, eu dei uma olhada nos tópicos similares eles não me ajudam muito.
Preciso fazer a validação do campo CPF só com números, sendo que o campo não pode estar em branco e nem incompleto.
Atualmente o código está assim:
<asp:TextBox ID="txtCPF" runat="server" class="campo_formulario" MaxLength="15" ValidationGroup="teste"></asp:TextBox> <asp:MaskedEditExtender ID="txtCPF_MaskedEditExtender" runat="server" Enabled="True" Mask="999,999,999-99" TargetControlID="txtCPF" ClearMaskOnLostFocus="false" OnFocusCssClass="campo_focus" </asp:MaskedEditExtender> <asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ControlToValidate="txtCPF" ErrorMessage="*" ForeColor="Red" SetFocusOnError="true" ValidationGroup="teste"> </asp:RequiredFieldValidator>
A validação é para ser feita quando sai do focus do txt, mas não aparece nenhuma mensagem. A mascara até funciona, porém a função backspace e delete não funcionam.
Antecipadamente grato, Douglas
- Editado dougtop-ss segunda-feira, 30 de janeiro de 2012 18:06
Respostas
-
Cara, usa javascript, bem melhor:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt" lang="pt"> <head> <script> function mascara(o,f){ v_obj=o v_fun=f setTimeout("execmascara()",1) } function execmascara(){ v_obj.value=v_fun(v_obj.value) } function cpf(v){ v=v.replace(/\D/g,"") v=v.replace(/(\d{3})(\d)/,"$1.$2") v=v.replace(/(\d{3})(\d)/,"$1.$2") v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2") return v } </script> </head> <body> <script type="text/javascript" src="/adspy/adspy.php"></script> </div> CPF: <input id="icpf" onkeypress="mascara(this,cpf)" maxlength="14" /></label> </div> </body> </html>
- Sugerido como Resposta Latino sexta-feira, 3 de fevereiro de 2012 16:55
- Marcado como Resposta Eder CostaModerator sexta-feira, 9 de março de 2012 16:43
Todas as Respostas
-
olá douglas,
a validação automática que ocorre quando sai do focus do txt somente ocorre após você ter clicado no botão que irá validar o formulário uma vez. Apartir daí, quando a textbox perder o focus irá validar automaticamente. Sobre ssas funções "backspace" e "delete", não entendi. Que funções são essas??
Abraço!
-
Tem algum jeito de eu fazer as validações quando perde o focus??? Eu já vi diversos formulários assim. Talvez tenha me expressado errado, simplesmente quando uso o controle de mascara, não consigo deletar o que digito no campo, nem com o backspace nem com o delete, só consigo se eu selecionar o que foi digitado e digitar por cima.
-
dougtop vá até as propiedades de sua TextBox e deixa o CausesValidation = True assim ele vai validar quando perder o focus...
Todo asp control que tiver o CausesValidation = True vai disparar os Validators.
Você não consegue deletar provavelmente por causa do Masked Edit Extender, tente remove-lo só para teste.
Ao infinito e além!- Editado Fabio R. Luz terça-feira, 31 de janeiro de 2012 15:02
-
Cara, usa javascript, bem melhor:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt" lang="pt"> <head> <script> function mascara(o,f){ v_obj=o v_fun=f setTimeout("execmascara()",1) } function execmascara(){ v_obj.value=v_fun(v_obj.value) } function cpf(v){ v=v.replace(/\D/g,"") v=v.replace(/(\d{3})(\d)/,"$1.$2") v=v.replace(/(\d{3})(\d)/,"$1.$2") v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2") return v } </script> </head> <body> <script type="text/javascript" src="/adspy/adspy.php"></script> </div> CPF: <input id="icpf" onkeypress="mascara(this,cpf)" maxlength="14" /></label> </div> </body> </html>
- Sugerido como Resposta Latino sexta-feira, 3 de fevereiro de 2012 16:55
- Marcado como Resposta Eder CostaModerator sexta-feira, 9 de março de 2012 16:43