Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

VOM

Apagar Input Text e onfocus (validação CPF onblur)

Recommended Posts

Galera estou precisando de uma ajuda.

 

Pesquisando alguns código na Internet, fiz algumas adaptações e criei um código de validação de CPF com onblur. Ou seja, quando o usuário digita o valor do Input Text e vai para outro campo , a função de validar CPF é chamada. Até aí tudo bem, esta funcionando diretinho. Mas gostaria de melhorar este código e não conseguir, pois tenho dificuldades com java script.

 

Gostaria de adicionar ao código uma rotina,

se ele der a mensagem de CPF inválido (window.alert("CPF incorreto. Tente novamente.");), automaticamente o valor do Input Text é apagado e o focus do mouse é direcionado novamente para o campo CPF, ou seja, ele volta para o campo CPF e apaga o valor incorreto, para que o usuário digite novamente.

 

Se alguém puder me ajudar, agradeço. Abs

 

O código que já fiz é este:

<html>

<head>

<title>Estudando JavaScript</title>

 

<script language="JavaScript">

function validarCPF(){

var cpf = document.cadastro.cpf.value;

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

if(!filtro.test(cpf)){

window.alert("CPF inválido. Tente novamente.");

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"){

window.alert("CPF inválido. Tente novamente.");

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))){

window.alert("CPF inválido. Tente novamente.");

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))){

window.alert("CPF inválido. Tente novamente.");

return false;

}

return true;

}

 

function remove(str, sub) {

i = str.indexOf(sub);

r = "";

if (i == -1) return str;

r += str.substring(0,i) + remove(str.substring(i + sub.length), sub);

return r;

}

</script>

 

</head>

<body>

 

<form name="cadastro" >

Informe seu CPF (use os pontos e o hífen):<br/>

<input type="text" maxlength="14" name="cpf" onBlur= "validarCPF()" >

<input type="submit" value="Enviar!">

</form>

 

</body>

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ai beleza.

 

É só colocar após o [ window.alert("CPF inválido. Tente novamente."); ] os comando abaixo.

 

document.cadastro.cpf.value = "";

document.cadastro.cpf.focus();

 

Até

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ai beleza.

 

É só colocar após o [ window.alert("CPF inválido. Tente novamente."); ] os comando abaixo.

 

document.cadastro.cpf.value = "";

document.cadastro.cpf.focus();

 

Até

Vlw muito obrigado pela ajuda.

 

O document.cadastro.cpf.value = ""; funcionou 100%. Brigadão mesmo.

 

No entanto o document.cadastro.cpf.focus(); não funcionou.

 

Abs

 

VOM

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.