Validar CPF em formulário
Pessoal, preciso de ajuda.
Eu estou realizando um trabalho da faculdade na qual preciso colocar 3 validações no formulário do CPF que são eles:
1. Se o usuário não digitou 11 caracteres (um CPF é composto de 9 dígitos de identificação e 2 dígitos de verificação) deve apresentar o erro: "CPF tem de ter 11 dígitos".
2. Se nem todos caracteres digitados são dígitos. Ou seja, se digitarem um "ponto" (.) deve apresentar o erro: "CPF só pode ter dígitos, caracter . inválido!"
3. Se os dígitos de verificação estão incorretos. Deve apresentar o erro: "Dígitos verificadores inválidos!"
Eu tenho o código abaixo, porém, ele apresenta os seguintes erros: Mesmo eu digitando meu CPF, ele apresenta o erro: "CPF deve ter 11 Dígitos". Ele não reconhece o erro se eu digitar qualquer caracter e ele não está identificando o dígito verificador.
Sou super iniciante. Quando forem explicar, tenham uma certa paciência, por favor. Se precisarem, envio a página em html. Muito Obrigado!
Código:
<script>
function calculaDV(num) {
var resto = 0, soma = 0;
for ( i = 2; i <11; i++) {
soma = soma + ((num % 10) * i);
num = parseInt(num / 10);
}
resto = (soma % 11);
return (resto > 1) ? (11 - resto) : 0;
}
function VerificaCPF ( campo ) {
var i, c, cpf;
var iniCPF;
var strCPF = campo.value;
if ( strCPF.lenght != 11){
alert("CPF tem de ter 11 digitos");
return false;
}
for ( i = 0; 1 < 11; i++ ) {
c = strCPF.charAt(i);
if ( (c < '0') || (c > '9')) {
alert("CPF so pode ter digitos, caracter " +
c + "invalido!");
return false;
}
}
iniCPF = strCPF.substring(0, 9);
pd = calculaDV(iniCPF);
sd = calculaDV(iniCPF * 10 + pd);
if ( (pd != strCPF.charAt(9)) || (sd !=strCPF.charAt(10)) ) {
alert("Digitos verificadores invalidos!");
return false;
}
return true;
}
</script>Discussão (5)
Carregando comentários...