Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

webfuture

Validação de CPF

Recommended Posts

Olá galera, estou tentando implementar uma validação de CPF em um formulario e estou com problemas, ele verificanormalmente o CPF porém se o CPF é inválido ele da a mensagem e prossegue com o envio do formulário, ou seja se a pessoa colocar o CPF inválido e clicar na mensagem de erro ela é cadastrada, o que preciso e que apos o erro ele não va para a proxima página e sim pare para a pessoa digitar novamente. Tentei dar um return false; mas não resolveu...

 

Olhem o script:

 

function verifica(){if (cadastro.sexo.selectedIndex < 1) { alert("O campo SEXO é de preenchimento obrigatório !!"); cadastro.sexo.focus(); return false;}if (cadastro.senha.value == false) { alert("O campo SENHA é de preenchimento obrigatório !!"); cadastro.senha.focus(); return false;}if (cadastro.nome.value == false) { alert("O campo NOME COMPLETO é de preenchimento obrigatório !!"); cadastro.nome.focus(); return false;}if (cadastro.nome_composto.value == false) { alert("O campo NOME COMPOSTO é de preenchimento obrigatório !!"); cadastro.nome_composto.focus(); return false;}if (cadastro.email.value == false) { alert("O campo EMAIL é de preenchimento obrigatório !!"); cadastro.email.focus(); return false;}if (cadastro.endereco.value == false) { alert("O campo ENDEREÇO é de preenchimento obrigatório !!"); cadastro.endereco.focus(); return false;}if (cadastro.cidade.value == false) { alert("O campo CIDADE é de preenchimento obrigatório !!"); cadastro.cidade.focus(); return false;}if (cadastro.uf.selectedIndex < 1) { alert("O campo UF é de preenchimento obrigatório !!"); cadastro.uf.focus(); return false;}if (cadastro.cep.value == false) { alert("O campo CEP é de preenchimento obrigatório !!"); cadastro.cep.focus(); return false;}if (cadastro.ddd_telefone.value == false) { alert("O campo DDD é de preenchimento obrigatório !!"); cadastro.ddd_telefone.focus(); return false;}if (cadastro.telefone.value == false) { alert("O campo TELEFONE é de preenchimento obrigatório !!"); cadastro.telefone.focus(); return false;}validaCPF();return false;if (cadastro.senha.value != cadastro.senha_confirma.value) { alert("As senhas informadas não coincidem, por favor verifique !!"); cadastro.senha.focus(); return false;}if (cadastro.aceito.checked == false) { alert("Antes de prosseguir você precisa ACEITAR AS CONDIÇÕES GERAIS !!"); cadastro.aceito.focus(); return false;}document.cadastro.action = "cadastro_passo2.asp"document.cadastro.submit()} function validaCPF() {	 cpf = document.cadastro.CPF.value;	 erro = new String;	 if (cpf.length < 11) erro += "Sao necessarios 11 digitos para verificacao do CPF! \n\n";	 var nonNumbers = /\D/;	 if (nonNumbers.test(cpf)) erro += "A verificacao de CPF suporta apenas numeros! \n\n";	 if (cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999"){			 erro += "Numero de CPF invalido!"   }   var a = [];   var b = new Number;   var c = 11;   for (i=0; i<11; i++){		   a[i] = cpf.charAt(i);		   if (i < 9) b += (a[i] * --c);   }   if ((x = b % 11) < 2) { a[9] = 0 } else { a[9] = 11-x }   b = 0;   c = 11;   for (y=0; y<10; y++) b += (a[y] * c--);   if ((x = b % 11) < 2) { a[10] = 0; } else { a[10] = 11-x; }   if ((cpf.charAt(9) != a[9]) || (cpf.charAt(10) != a[10])){		   erro +="Digito verificador com problema!";   }   if (erro.length > 0){		   alert(erro);		   return false;   }   return true;}

O form esta assim:

 

<FORM ACTION="cadastro_passo2.asp" NAME="cadastro" METHOD="POST" OnSubmit="verifica();return false;">

 

Alguém sabe me dizer como resolver isto ? Será que estou fazendo errado ?

 

WebFuture

Compartilhar este post


Link para o post
Compartilhar em outros sites

No onsubmit faz assim:onsumit="return verifica();"se a sua função estiver retornado false corretamente quando ouver erro o return vai capturar esse false e bloquear o envio do formulário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá hunternh fiz o que você falou porém continua do mesmo jeito, colocando o return ele nao prossegue quando o CPF é invalido porém quando o CPF é valido também não, ele fica parado na tela...webFuture

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem uma coisa depois de olhar melhor o seu código constatei uma coisa, você chama a função pra validar o cpf e logo depois dela você coloca um return false;validaCPF();return false;com isso mesmo que retorne verdadeiro da sua função vai retornar falso para o onsubmit.você deveria capturar o retorno da sua função do cpf:if(!validaCPF()) return false;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.