Apagar Input Text e onfocus (validação CPF onblur)
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>Discussão (4)
Carregando comentários...