Ir para conteúdo

Arquivado

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

GDonato

[Resolvido] Cursor direto no campo

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

provavel prq você esteja usando onchange ou onclick para chamar a function....você tambem deve utilizar no onsubmit no formulario,

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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>

abs

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.