Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal boa tarde!
Tenho uma pagina onde contem apenas o campo CPF e preciso que o cursor já fique direto no campo, e faça a validação do CPF, a validação até está fazendo mas se eu clico no campo, se eu clicar direto no botao (ENVIAR) o formulario nao valida o CPF, ja tentei diversos scripts mas nenhum vai direto, será que alguem pode me ajudar?
Segue abaixo o script que tenho:
<script>
<!--
function Verifica_CPF(cpf) {
var CPF = cpf.value; // Recebe o valor digitado no campo
// Verifica se o campo é nulo
if (CPF == "") {
alert('Digite o CPF!');
form1.CPF.value = '';
form1.CPF.focus();
return false;
}
// Aqui começa a checagem do CPF
var POSICAO, I, SOMA, DV, DV_INFORMADO;
var DIGITO = new Array(10);
DV_INFORMADO = CPF.substr(9, 2); // Retira os dois últimos dígitos do número informado
// Desemembra o número do CPF na array DIGITO
for (I=0; I<=8; I++) {
DIGITO* = CPF.substr( I, 1);*
}
// Calcula o valor do 10º dígito da verificação
POSICAO = 10;
SOMA = 0;
for (I=0; I<=8; I++) {
* SOMA = SOMA + DIGITO** POSICAO;
POSICAO = POSICAO - 1;
}
DIGITO[9] = SOMA % 11;
if (DIGITO[9] < 2) {
DIGITO[9] = 0;
}
else{
DIGITO[9] = 11 - DIGITO[9];
}
// Calcula o valor do 11º dígito da verificação
POSICAO = 11;
SOMA = 0;
for (I=0; I<=9; I++) {
* SOMA = SOMA + DIGITO** POSICAO;
POSICAO = POSICAO - 1;
}
DIGITO[10] = SOMA % 11;
if (DIGITO[10] < 2) {
DIGITO[10] = 0;
}
else {
DIGITO[10] = 11 - DIGITO[10];
}
// Verifica se os valores dos dígitos verificadores conferem
DV = DIGITO[9] 10 + DIGITO[10];*
if (DV != DV_INFORMADO) {
alert('CPF inválido');
form1.CPF.value = '';
form1.CPF.focus();
return false;
}
}
//-->
</script>
Obrigado galera....
provavel prq você esteja usando onchange ou onclick para chamar a function....você tambem deve utilizar no onsubmit no formulario,
Celso, tem como você me passar detalhado como ficaria? sou leiogo no assunto e tentei coloca o comando que você passou (document.getElementById("campo_cpf").focus();) e mesmo assim nao funcionou...
Pessoal, peço o mesmo favor a quem responder, colocar detalhado...
Obrigado
Um exemplo bem simples pra te dar um norte. Você modifica de acordo com suas necessidades:
<html>
<head>
<title>Teste</title>
<script type="text/javascript">
<!--
function Verifica_CPF(cpf) {
var CPF = cpf.value; // Recebe o valor digitado no campo
// Verifica se o campo é nulo
if (CPF == "") {
alert('Digite o CPF!');
cpf.value = '';
cpf.focus();
return false;
}
// Aqui começa a checagem do CPF
var POSICAO, I, SOMA, DV, DV_INFORMADO;
var DIGITO = new Array(10);
DV_INFORMADO = CPF.substr(9, 2); // Retira os dois últimos dígitos do número informado
// Desemembra o número do CPF na array DIGITO
for (I=0; I<=8; I++) {
DIGITO[I] = CPF.substr( I, 1);
}
// Calcula o valor do 10º dígito da verificação
POSICAO = 10;
SOMA = 0;
for (I=0; I<=8; I++) {
SOMA = SOMA + DIGITO[I] * POSICAO;
POSICAO = POSICAO - 1;
}
DIGITO[9] = SOMA % 11;
if (DIGITO[9] < 2) {
DIGITO[9] = 0;
}else{
DIGITO[9] = 11 - DIGITO[9];
}
// Calcula o valor do 11º dígito da verificação
POSICAO = 11;
SOMA = 0;
for (I=0; I<=9; I++) {
SOMA = SOMA + DIGITO[I] * POSICAO;
POSICAO = POSICAO - 1;
}
DIGITO[10] = SOMA % 11;
if (DIGITO[10] < 2) {
DIGITO[10] = 0;
} else {
DIGITO[10] = 11 - DIGITO[10];
}
// Verifica se os valores dos dígitos verificadores conferem
DV = DIGITO[9] * 10 + DIGITO[10];
if (DV != DV_INFORMADO) {
alert('CPF inválido');
cpf.value = '';
cpf.focus();
return false;
}
}
function validaForm()
{
return Verifica_CPF(document.getElementById("campo_cpf"));
}
//-->
</script>
</head>
<body onload="document.getElementById('campo_cpf').focus()">
<form method="post" action="" onsubmit="return validaForm()" />
CPF: <input type="text" name="campo_cpf" id="campo_cpf" value="" />
<p><input type="submit" value="enviar" /></p>
</form>
</body></html>
absGrande Celso
Obrigado pela ajuda, criei outro formulario e deu certo...
Obrigadaoooooooo
Para focar um campo específico, utilize o método focus(). Assumindo que seu campo de cpf tenha o id "campo_cpf", para focar o campo você deve fazer:
document.getElementById("campo_cpf").focus();
Não se esqueça que o elemento já deve estar carregado na página, senão o script vai dar erro dizendo que não encontrou o campo. Existem algumas formas de se fazer isso e a forma mais simples, porém não 100% eficaz, é utilizar no onload do body. A forma mais eficaz é você utilizar algum framework (jquery, prototype, etc...) e utilizar os eventos que dizem que toda árvore DOM já foi carregada e está disponível para "manuseio".