none
onBlur validar CPF RRS feed

  • Pergunta

  • O que tem de errado neste procedimento, estou tentando validar o CPF através do javascript mas nada acontece

    Coloquei essa chamada no codeBehind

    <asp:TextBox ID="txtCPF" runat="server"  placeholder="CPF" class="form-control input-md" type="text" maxlength="14" onkeypress="MascaraCPF(form1.txtCPF);" onblur="ValidarCPF(form1.txtCPF);" style="width:140px"></asp:TextBox>

    Criei uma arquivo de script com a seguinte função

    function ValidarCPF(Objcpf){
        var cpf = Objcpf.value;
        exp = /\.|\-/g
        cpf = cpf.toString().replace( exp, "" ); 
        var digitoDigitado = eval(cpf.charAt(9)+cpf.charAt(10));
        var soma1=0, soma2=0;
        var vlr =11;

        for(i=0;i<9;i++){
            soma1+=eval(cpf.charAt(i)*(vlr-1));
            soma2+=eval(cpf.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)        
            {
            windows.alert('CPF Invalido!');
            return false;
            }
        else
            {return true;}               
    }


    terça-feira, 20 de março de 2018 18:34

Respostas

  • O erro está aqui

    windows.alert('CPF Invalido!');

    O que tem de errado nesta chamada?

    • Marcado como Resposta Venildo Amaral terça-feira, 27 de março de 2018 12:21
    quarta-feira, 21 de março de 2018 22:55
  • Olá, para javascript geralmente usa-se apenas o alert('CPF Inválido'); sem a necessidade do Windows.
    Outra coisa que você pode fazer é colocar um return na chamada do seu onblur. 

    onblur="return ValidarCPF(form1.txtCPF)

    Abs!


    Leandro de Agostini MCTS - Web Application, Framework 4

    • Marcado como Resposta Venildo Amaral terça-feira, 27 de março de 2018 12:22
    quarta-feira, 21 de março de 2018 23:01

Todas as Respostas

  • Boa tarde, Venildo Amaral. Tudo bem?

    Obrigado por usar o fórum MSDN.

    Você está recebendo alguma mensagem de erro ou algo do tipo?

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quarta-feira, 21 de março de 2018 16:35
    Moderador
  • Venildo, na sua chamada do script faça a seguinte alteração

    onkeypress="MascaraCPF(this);" onblur="ValidarCPF(this);"


    Junior

    quarta-feira, 21 de março de 2018 17:57
  • Junior

    Estou utilizando VB.Net e não aparece nenhum erro, somente não executa nada.

    A parte da formatação consegui resolver, está formatando, mas validar nada acontece.

    Teria alguma ideia do que poderia ser?

    Obrigado

    quarta-feira, 21 de março de 2018 18:11
  • Venildo isso é feito em javascript , faça assim :

    debbuger;
    
    var cpf = Objcpf.value;

    Se seu navegador for o chrome clique com o botão direito e escolha inspecionar, qdo vc informar o cpf ele vai parar depois do debbuger e vc verificar se tem algum erro.  


    Junior

    quarta-feira, 21 de março de 2018 19:01
  • Filipe, boa noite

    Realmente tem um erro, mas não tenho conhecimento suficiente para entender o que está de errado

    Uncaught ReferenceError: windows is not defined
        at ValidarCPF (jsMascaras.js:83)
        at HTMLInputElement.onblur (wfLoginNovoUsuario.aspx:60)

    O erro que esta dentro de um laço for

    for(i=0;i<9;i++){
            soma1+=eval(cpf.charAt(i)*(vlr-1));
            soma2+=eval(cpf.charAt(i)*vlr);
            vlr--;
        }       

    O erro esta na linha em negrito (vlr--;)

    Poderia me ajudar?

    quarta-feira, 21 de março de 2018 21:49
  • Junior, boa noite

    Realmente tem um erro, mas não tenho conhecimento suficiente para entender o que está de errado

    Uncaught ReferenceError: windows is not defined
        at ValidarCPF (jsMascaras.js:83)
        at HTMLInputElement.onblur (wfLoginNovoUsuario.aspx:60)

    O erro que esta dentro de um laço for

    for(i=0;i<9;i++){
            soma1+=eval(cpf.charAt(i)*(vlr-1));
            soma2+=eval(cpf.charAt(i)*vlr);
            vlr--;
        }       

    O erro esta na linha em negrito (vlr--;)

    Poderia me ajudar?

    quarta-feira, 21 de março de 2018 21:50
  • Olá, você pode adicionar esta função de javascript que está usando o REGEX no evento onblur do seu textbox. Ex:

    <asp:TextBox runat="server" ID="txtCPF" onblur="IsCPF_CNPJ(this);" /> 

    <script>

    function IsCPF_CNPJ(valor) {
        var numero = valor.value;
        var campo = '#' + valor.id;
        var regex1 = /^[0-9]{3}[0-9]{3}[0-9]{3}[0-9]{2}$/;
        var regex2 = /^[0-9]{2}-[0-9]{3}.[0-9]{3}\/[0-9]{4}-[0-9]{2}$/;
        numero = numero.replace(/^s+|s+$/g, '');//remover espaco em branco
        if (numero.match(regex1) || numero.match(regex2)) {
            $(campo).css('border-color', '#ccc');
            return true;
        }
        else {
            $(campo).css('border-color', 'red');
            valor.value = '';
            return false;
        }
    }

    </script>

    Abs!


    Leandro de Agostini MCTS - Web Application, Framework 4

    quarta-feira, 21 de março de 2018 22:39
  • Leandro, essa parte da formatação já resolvi, o problema esta na validação do CPF.

    quarta-feira, 21 de março de 2018 22:44
  • Olá, acredito que você queira validar então o cálculo que é realizado para verificar se os números informados são condizentes com o CPF de registro. Veja se este link te ajuda.

    http://www.macoratti.net/11/09/c_val1.htm

    https://social.msdn.microsoft.com/Forums/pt-BR/1dbe81e6-c063-4ae5-ae1d-5643fb4b0e62/validar-cpf-em-c?forum=vscsharppt

    Abs!


    Leandro de Agostini MCTS - Web Application, Framework 4

    quarta-feira, 21 de março de 2018 22:50
  • O erro está aqui

    windows.alert('CPF Invalido!');

    O que tem de errado nesta chamada?

    • Marcado como Resposta Venildo Amaral terça-feira, 27 de março de 2018 12:21
    quarta-feira, 21 de março de 2018 22:55
  • Olá, para javascript geralmente usa-se apenas o alert('CPF Inválido'); sem a necessidade do Windows.
    Outra coisa que você pode fazer é colocar um return na chamada do seu onblur. 

    onblur="return ValidarCPF(form1.txtCPF)

    Abs!


    Leandro de Agostini MCTS - Web Application, Framework 4

    • Marcado como Resposta Venildo Amaral terça-feira, 27 de março de 2018 12:22
    quarta-feira, 21 de março de 2018 23:01
  • Venildo,

    Altere o parâmetro da função de validação para "this" conforme o exemplo abaixo e veja se o problema persiste.

    <asp:TextBox ID="txtCPF" runat="server"  placeholder="CPF" class="form-control input-md" type="text" maxlength="14" onkeypress="MascaraCPF(this);" onblur="ValidarCPF(this);" style="width:140px"></asp:TextBox>



    Carlos Eduardo Ferreira

    quinta-feira, 22 de março de 2018 18:45