Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda urgente com maskedinput + ketchup no CPF


Germano Assis

Pergunta

Pessoal customizei o Ketchup p/ fazer a validação do CPF porém depois que apliquei o MaskedInput ficou dando pau.

Erro como aparece no console do Chrome:

Uncaught TypeError: Cannot read property 'message' of undefined
g.ketchup.validateElementjquery.ketchup.all.min.js:28
g.ketchup.bindValidationEventjquery.ketchup.all.min.js:27
f.event.handlejquery-1.6.2.min.js:17
f.event.add.k.i.handle.kjquery-1.6.2.min.js:16
f.event.triggerjquery-1.6.2.min.js:17
f.fn.extend.triggerjquery-1.6.2.min.js:17
f.e.extend.eachjquery-1.6.2.min.js:16
f.e.fn.e.eachjquery-1.6.2.min.js:16
f.fn.extend.triggerjquery-1.6.2.min.js:17
g.ketchup.bindValidationEventBridgejquery.ketchup.all.min.js:27
f.event.handlejquery-1.6.2.min.js:17
f.event.add.k.i.handle.kjquery-1.6.2.min.js:16
Erro como aparece no console do Firefox:
h[i] is undefined
[Parar neste erro] c){var d=[],h=b.data(this.dataNames.va...lidationEvents:function(b){for(var c=
Função do ketchup p/ verificar o CPF
$.ketchup.validation('v_cpf', 'É necessário digitar um cpf válido!', function (form, el, value) {
    var resultado = validaCPF(value);

    
        if (resultado) {
            return true;
        } else {
            return false;
        }
    
});
Mascarando o CPF
$("#cpf").mask("999.999.999-99");
Função validaCPF
function validaCPF(ocpf) {

    var cpf = ocpf;
    var filtro = /^\d{3}.\d{3}.\d{3}-\d{2}$/i;

    if(!filtro.test(cpf)){
        if (cpf.length != 11)
            return false;
    }

    cpf = remove(cpf, ".");
    cpf = remove(cpf, "-");

    if(cpf.length != 11 || cpf == "00000000000" || cpf == "11111111111" ||
        cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" ||
        cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" ||
        cpf == "88888888888" || cpf == "99999999999"){
        return false;
    }

    soma = 0;

    for(i = 0; i < 9; i++)
           soma += parseInt(cpf.charAt(i)) * (10 - i);

    resto = 11 - (soma % 11);

    if(resto == 10 || resto == 11)
        resto = 0;

    if(resto != parseInt(cpf.charAt(9))){
        return false;
    }

    soma = 0;

    for(i = 0; i < 10; i ++)
        soma += parseInt(cpf.charAt(i)) * (11 - i);

    resto = 11 - (soma % 11);

    if(resto == 10 || resto == 11)
        resto = 0;

    if(resto != parseInt(cpf.charAt(10))) {
        return false;
    }

    return true;
}
Input do CPF
<input type="text" id="cpf" name="cpf" size="14" value="" data-validate="validate(v_cpf)"/>

Qualquer dica será muito bem vinda!

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
A função remove existe?

Exitia sim.

Acabei mudando algumas funções e funcionou :)

Função do ketchup p/ verificar o CPF

$.ketchup.validation('v_cpf', 'O C.P.F. digitado é inválido!', function () {
        return validaCPF($("#cpf").val());
    });
Função validaCPF
function validaCPF(ocpf) {
var cpf = ocpf;
    var filtro = /^\d{3}.\d{3}.\d{3}-\d{2}$/i;

    if(!filtro.test(cpf)){
        if (cpf.length != 11)
            return false;
    }

    exp = /\.|\-/g;
    cpf = cpf.toString().replace( exp, "" );

    if(cpf.length != 11 || cpf == "00000000000" || cpf == "11111111111" ||
        cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" ||
        cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" ||
        cpf == "88888888888" || cpf == "99999999999"){
        return false;
    }

    soma = 0;

    for(i = 0; i < 9; i++)
           soma += parseInt(cpf.charAt(i)) * (10 - i);

    resto = 11 - (soma % 11);

    if(resto == 10 || resto == 11)
        resto = 0;

    if(resto != parseInt(cpf.charAt(9))){
        return false;
    }

    soma = 0;

    for(i = 0; i < 10; i ++)
        soma += parseInt(cpf.charAt(i)) * (11 - i);

    resto = 11 - (soma % 11);

    if(resto == 10 || resto == 11)
        resto = 0;

    if(resto != parseInt(cpf.charAt(10))) {
        return false;
    }

    return true;
}

O resto continua igual e a mascara está sendo aplicada. E está tudo funcionando.

Espero que seja util para alguém.

Editado por Germano Assis
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...