Validar cpf [RESOLVIDO]

1. Validar cpf [RESOLVIDO]

Atila Medeiros Leite Lintz
amllintz

(usa Debian)

Enviado em 22/09/2016 - 10:02h

Bom dia.

Não estou conseguindo chamar a função Javascript com onblur.

Vocês podem me ajudar?

Usei o código da Receita Federal para validar o CPF.

Código Javascript:
//Verifica se CPF é válido
function TestaCPF(strCPF) {
var Soma;
var Resto;
Soma = 0;
//strCPF = RetiraCaracteresInvalidos(strCPF,11);
if (strCPF == "00000000000")
return false;
for (i=1; i<=9; i++)
Soma = Soma + parseInt(strCPF.substring(i-1, i)) * (11 - i);
Resto = (Soma * 10) % 11;
if ((Resto == 10) || (Resto == 11))
Resto = 0;
if (Resto != parseInt(strCPF.substring(9, 10)) )
return false;
Soma = 0;
for (i = 1; i <= 10; i++)
Soma = Soma + parseInt(strCPF.substring(i-1, i)) * (12 - i);
Resto = (Soma * 10) % 11;
if ((Resto == 10) || (Resto == 11))
Resto = 0;
if (Resto != parseInt(strCPF.substring(10, 11) ) )
return false;
return true;
}

Código html5:
CPF:<input id="valida" name="cpf" required="required" pattern="[0-9]+$" maxlength="11" size="11" placeholder="CPF só número" onblur="TestaCPF(this.value)"/>


Obrigado.


  


2. MELHOR RESPOSTA

thinomar
thinomar

(usa Linux Mint)

Enviado em 22/09/2016 - 12:24h

Epa, quando for mandar trechos de código assim, tente deixar o mais legível possível. Aqui no fórum se usam as tags "code" para mandar código.

Sobre o seu problema, você tem que configurar se o campo é válido ou não, e não apenas retornar true ou false. Eu, no caso, utilizei o método "setCustomValidity".
<!DOCTYPE html>
<html>
<head>
<script>
//Verifica se CPF é válido
function TestaCPF(strCPF) {
var Soma, Resto, borda_original;
Soma = 0;

if (strCPF == "00000000000"){
document.getElementById("cpf").setCustomValidity('Invalid');
return false;
}

for (i=1; i<=9; i++){
Soma = Soma + parseInt(strCPF.substring(i-1, i)) * (11 - i);
}

Resto = (Soma * 10) % 11;
if ((Resto == 10) || (Resto == 11)){
Resto = 0;
}

if (Resto != parseInt(strCPF.substring(9, 10))){
document.getElementById("cpf").setCustomValidity('Invalid');
return false;
}

Soma = 0;
for (i = 1; i <= 10; i++){
Soma = Soma + parseInt(strCPF.substring(i-1, i)) * (12 - i);
}

Resto = (Soma * 10) % 11;
if ((Resto == 10) || (Resto == 11)){
Resto = 0;
}

if (Resto != parseInt(strCPF.substring(10, 11))){
document.getElementById("cpf").setCustomValidity('Invalid');
return false;
}

document.getElementById("cpf").setCustomValidity('');
return true;
}
</script>
</head>
<body>
CPF:<input id="cpf" name="cpf" required="required" pattern="[0-9]+$" maxlength="11" size="11" placeholder="CPF" onblur="TestaCPF(this.value)"/>
</body>






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts