1
resposta

Validação de CPF - JavaScript

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>
1 resposta

Oi Daniel tudo bem?

Muda sua linha

            <input name="cpfUsuario" type="name" onblur="alert(TestaCPF(this.value))" class="form-control-plaintext border-bottom"

Porque ele pega o cpfUsuario dessa forma que você programou.

Espero ter ajudado!!!