Codigo a baixo valida o CPF e caso seja invalido trás um POP-UP alertando.
function validarCPF(Objcpf) {
var cpfUsuario = Objcpf.value;
exp = /\.|\-/g;
cpfUsuario = cpfUsuario.toString().replace(exp, "");
var digitoDigitado = eval(cpfUsuario.charAt(9) + cpfUsuario.charAt(10));
var soma1 = 0, soma2 = 0;
var vlr = 11;
for (i = 1; i <= 9; i++) {
soma1 += eval(cpfUsuario.charAt(i) * (vlr - 1));
soma2 += eval(cpfUsuario.charAt(i) * vlr);
vlr--;
}
soma1 = (((soma1 * 10) % 11) === 10 ? 0 : ((soma1 * 10) % 11));
soma2 = (((soma2 + (2 * soma1)) * 10) % 11);
var digitoGerado = (soma1 * 10) + soma2;
if (digitoGerado !== digitoDigitado)
{
alert('CPF Invalido!');
Objcpf.value = '';
} else if (digitoGerado === 00000000000)
{
alert('CPF Invalido!');
Objcpf.value = '';
}
}
Essa validação a baixo encontrei na DevMedia, mas não consigo ajustar para funcionar em meu código.
function TestaCPF(strCPF) {
var Soma;
var Resto;
Soma = 0;
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;
}
var strCPF = "12345678909";
alert(TestaCPF(strCPF));
Modal utilizado no qual cadastro as informações do usuário e já valido com POP-UP a mensagem.
<div class="input-group mb-3">
<div class="mt-2">
<span data-feather="book"></span>
</div>
<div class="col-10">
<input name="cpfUsuario" type="name" onblur="validarCPF(cpfUsuario)" class="form-control-plaintext border-bottom" id="cpfUsuario" placeholder="Cpf" required>
</div>
</div>