Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Gostaria que, quando o usuario digitasse o e-mail ou o CPF errados, aparecesse um label na mesma página informando que foi digitado errado, mas sem apagar os outros valores (se possível) http://forum.imasters.com.br/public/style_emoticons/default/natal_ohmy.gif
Vagner.oliveira,Faça em JavaScript, não é difícil e é muito mais rápido, pois não precisa chamar uma página toda vez para verificar o valor dos campos. Em JScript a validação é instantênea. EEu tenho aqui funções em JavaScript para validar CPF, CNPJ, campos de e-mail, etc... mande-me o nome ou outros atributos dos campos que você quer validar que monto um script pra você rapidamente. Posso colocar comentários para te ajudar a entender melhor...Preciso do nome do FORM, e dos campos INPUT que você quer validar...Abraços e boa sorte!
nome do form "form1"campo e-mail = observacaocampo CPF = numeroInscricao
Vagner.oliveira,
Bom, o código ficou meio grandinho, mas testei várias vezes e está funcionando corretamente. Mesmo assim, se der algum problema me avise que eu ou outro membro do fórum podemos ajeitar para você, ok?
Antes de inserir o código terei que fazer algumas considerações:
1 - Em sua tag FORM, insira:
onSubmit="return validar()"
Exemplo: <FORM NAME="form1" ACTION="minhapagina.asp" METHOD="post" onSubmit="return validar()">
isso irá chamar a função validar(), que fiz em JavaScript.
2 - O código JavaScript a seguir deverá ficar entre as tags HEAD e /HEAD, para ser carregado mais rapidamente, antes do conteúdo da página ser exibido.
3 - O campo para inserção do CPF só deve conter números. Nada de hífen, ponto, barras, etc, senão o scritp não irá funcionar. O ideal seria você inserir a instrução MAXLENGTH="11" em sua tag "INPUT, name=numeroInscricao".
4 - Substitua as primeiras letras do código (&alt;) por <, pois o fórum tenta evitar a inserção de códigos que possam mudar suas páginas. Eles alteram isso automaticamente, mas é só você corrigir.
O código é o seguinte:
<script language=JavaScript><!--//A função validar é responsável por verificar o conteúdo de todos os//campos INPUT de sua páginafunction validar() {//VERIFICANDO SE O CAMPO "observacao" ESTA PREENCHIDO//Se não estiver, irá aparecer uma caixa de alerta if (document.form1.observacao.value == ""){ alert("Por favor, digite seu e-mail!"); document.form1.observacao.focus(); return false; } else { //Verificando se existe @ no e-mail inserido. Se não existir //o valor retornado será -1 if (document.form1.observacao.value.indexOf("@",0)==-1) { alert("Digite seu e-mail corretamente!"); document.form1.observacao.select(); return false; } }//Verificando se o campo "numeroInscricao" está vazio//Se estiver, irá aparecer uma caixa de alerta: if (document.form1.numeroInscricao.value == ""){ alert("Por favor, digite o número do seu CPF!"); document.form1.numeroInscricao.focus(); return false; } //Se o campo não estiver vazio, devemos avaliar se o CPF é válido else { var tudo = document.form1.numeroInscricao.value; var n1 = tudo.charAt(0,1); var n2 = tudo.charAt(1,2); var n3 = tudo.charAt(2,3); var n4 = tudo.charAt(3,4); var n5 = tudo.charAt(4,5); var n6 = tudo.charAt(5,6); var n7 = tudo.charAt(6,7); var n8 = tudo.charAt(7,8); var n9 = tudo.charAt(8,9); var soma1 = eval((n1*10)+(n2*9)+(n3*8)+(n4*7)+(n5*6)+(n6*5)+(n7*4)+(n8*3)+(n9*2)); var div1 = eval(soma1%11); if (div1 >= 2) { var n10 = eval(11-div1); } else { var n10 = "0" } var soma2 = eval((n1*11)+(n2*10)+(n3*9)+(n4*8)+(n5*7)+(n6*6)+(n7*5)+(n8*4)+(n9*3)+(n10*2)); var div2 = eval(soma2%11); if (div2 >= 2) { var n11 = eval (11-div2); } else { var n11 = "0"; } //Verificando se os dois últimos números correspondem a n10 e n11 if (tudo.charAt(9,10) != n10 || tudo.charAt(10,11) != n11) { alert("O número do CPF é inválido!\nVerifique seu CPF e digite-o novamente!"); document.form1.observacao.select(); return false; } }}--></script>
É isso. Qualquer dúvida estamos aí!
Um abraço e boa sorte!
galera...assuntos de javascript por favor postar no forum referente a linguagem pois pode ser duvida de mais alguem, abaixo os exemplos:
exibindo mensagens na mesma página, mantendo os textbox preenchidos:
<%option explicit%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[url="[http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]">http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Untitled Document</title><style type="text/css"><!--.style2 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; }--></style></head><body><%dim strNome,strEmail,strMensagem 'declarando variáveis'recuperando os dados do formulário e armazenando em variaveisstrNome=Request.Form("txtNome") strEmail=Request.Form("txtEmail")'verificando se as variáveis são verdadeirasif strEmail<>"" and strNome<>"" then 'se as duas variáveis forem verdadeiras envia os dados para outra página na forma de querystring Response.Redirect("dados.asp?nome="&strNome&"&email="&strEmail&"") 'enviando os dados dos text para outra página, recupere na outra página com request.querystring("nome") e request.querystring("email")else 'se for falso uma ou mais variáveis aramazena uma mensagem de erro para exibir if strNome="" and strEmail="" then strMensagem="" elseif strNome="" then strMensagem="Preencha seu nome" elseif strEmail="" then strMensagem="Preencha seu email" end if end if%><form id="form1" name="form1" method="post" action=""> <table width="15%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td> <div align="right" class="style2">Nome <input name="txtNome" type="text" id="txtNome" value="<%=strNome%>" /> </div></td> </tr> <tr> <td> <div align="right" class="style2">Email <input name="txtEmail" type="text" id="txtEmail" value="<%=strEmail%>" /> </div></td> </tr> <tr><%'exibe a mensagem de erro quando necessário%> <td><div align="center" class="style2"><strong><%=strMensagem%></strong></div></td> </tr> <tr> <td><div align="center" class="style2"> <input type="submit" name="Submit" value="Enviar" /> </div></td> </tr> </table></form></body></html>verificando cpf válido:
Function ChkCPF(valor)Dim arrayCPF(9)valor=trim(cstr(valor))ChkCPF = Trueif len(valor) <> 11 thenChkCPF = Falseelsefor i = 0 to 9if valor = String(11,CStr(i)) then ChkCPF = Falsenextif ChkCPF thenfor i = 1 to 9arrayCPF(i-1) = int(mid(valor, i, 1))nextfor i = 1 to 9dig1 = dig1 + (arrayCPF(9-i)(i+1))nextdig1 = 11 - (dig1 MOD 11)if dig1 >= 10 then dig1 = 0dig2 = dig1 2for i = 1 to 9dig2 = dig2 + (arrayCPF(9-i)*(i+2))nextdig2 = 11 - (dig2 MOD 11)if dig2 >= 10 then dig2 = 0if (CStr(dig1) & CStr(dig2)) <> Right(valor,2) then ChkCPF = Falseend ifend ifEnd FunctionAgora é só mesclar os códigos
Vagner.oliveira,Faça em JavaScript, não é difícil e é muito mais rápido, pois não precisa chamar uma página toda vez para verificar o valor dos campos. Em JScript a validação é instantênea. EEu tenho aqui funções em JavaScript para validar CPF, CNPJ, campos de e-mail, etc... mande-me o nome ou outros atributos dos campos que você quer validar que monto um script pra você rapidamente. Posso colocar comentários para te ajudar a entender melhor...Preciso do nome do FORM, e dos campos INPUT que você quer validar...Abraços e boa sorte!