Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Senhores,
se não for o lugar certo me disculpem,
bom, tenho um formulário de cadastro, o qual estou validando com os plugins do jquery.
coloquei a mascara e a validação de cpf (os códigos colocarei no final do post), a mascara é aquela que já fica os pontos e o traço no imput (999.999.999-99) os numeros 9 não aparecem.
O problema é o seguinte...
Quando eu digito um cpf inválido aparece a mensagem de cpf inválido e quando eu apago para digitar um correto, fica levando o cursor do mouse para o final do input, ou seja, não consigo digitar.
Acredito qeu o problema seja por que a verificação está sendo feita durante a digitação e por isso, cada numero qeu eu digito, o cursor vai pro final do input.
como eu faço para fazer essa verificação ser feita só quando eu tirar o mouse do input ou entao só na confirmação do cadastro, assim o cursor para de ir pro final do input e bloquear a digitação.
Segue os códigos abaixo:
Validação do CPF
// Função de validação de CPF
jQuery.validator.addMethod("verificaCPF", function(value, element) {
value = value.replace('.','');
value = value.replace('.','');
cpf = value.replace('-','');
while(cpf.length < 11) cpf = "0"+ cpf;
var expReg = /^0+$|^1+$|^2+$|^3+$|^4+$|^5+$|^6+$|^7+$|^8+$|^9+$/;
var a = [];
var b = new Number;
var c = 11;
for (i=0; i<11; i++){
a[i] = cpf.charAt(i);
if (i < 9) b += (a[i] * --c);
}
if ((x = b % 11) < 2) { a[9] = 0 } else { a[9] = 11-x }
b = 0;
c = 11;
for (y=0; y<10; y++) b += (a[y] * c--);
if ((x = b % 11) < 2) { a[10] = 0; } else { a[10] = 11-x; }
if ((cpf.charAt(9) != a[9]) || (cpf.charAt(10) != a[10]) || cpf.match(expReg)) return false;
return true;
}, "CPF inválido."); // Mensagem padrão
E na página do formulário eu chamo a função e listo as mensagens de erro:
$("#cadastro").validate({
// Define as regras *************************************
rules:{
cpf:{
// campoMensagem será obrigatório (required)
required: true, verificaCPF: true
},
},
// Define as mensagens de erro para cada regra *************************************
messages:{
cpf:{
required: "<br /><div style='color:#ff0000;'>Digite seu CPF</div>",
verificaCPF: "<br /><div style='color:#ff0000;'>CPF inválido</div>"
},
Agradeço antecipadamente,
Diego Emidio
Carregando comentários...