Jump to content
Fórum Script Brasil
  • 0

Ajuda urgente com maskedinput + ketchup no CPF


Germano Assis

Question

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 to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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.

Edited by Germano Assis
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...