Ir para conteúdo

POWERED BY:

Arquivado

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

Reply.

Variável não sobreescreve

Recommended Posts

Problemas e mais problemas...

Estava fazendo um validador de formulário pra um site. Simplesmente fiz várias verificações gravando um alerta numa array em cada uma delas. Exemplo:

			if(frm.nome.value == "" || frm.nome.value == null || frm.nome.value.length < 3)
				alerta[0] = "Coloque um nome com no mínimo 3 caracteres.";
			
			if(frm.mail.value.indexOf("@") == -1 || frm.mail.value.indexOf(".") == -1 || frm.mail.value == "" || frm.mail.value == null)
				alerta[1] = "Coloque um e-mail válido";
No final faço uma verificação com for pra saber se tem algum valor na variável e se tiver salvo em uma outra, todos os alertas.

Logo em seguida faço mais uma verificação pra saber se a variável final está vazia ou não, caso sim a pessoa prossegue pra próxima página, caso contrário mando um alert com a variável com todos os erros e bloqueio o envio do formulário.

Até aí tudo bem. O problema vem quando eu preencho algum campo e deixo outros em branco. Quando clico em enviar aparece a mesma mensagem anterior, sendo que um dos erros que aparece já foi corrigido.

Já tentei zerar as variáveis mas não deu muito certo! ;P

Então... se alguém tiver alguma idéia do que é isso eu agradeceria x_x

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei... está meio estranho...

Por exemplo, se o campo nome estiver OK, o alert[0] não será mais criado, o que causará um array meio quebrado.

 

Você poderia então tentar criar esse array a partir de uma variável que sofre incrementos, ou então armazenar tudo em uma variável apenas, que seria exibida em um alert informando todos os erros que ocorreram.

 

Exemplo:

var i = 0;

Se ocorrer erro, aumentar a variável i: i++;

alert = "Mensagem blá blá blá...";

 

No final:

Se i > 0: exibir alerts com loop "for".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não dá nada a array "quebrada". Vou postar o código javascript todo aqui, acho que ficará mais fácil de entender! ;P

		function validaForm(frm) {
			if(frm.nome.value == "" || frm.nome.value == null || frm.nome.value.length < 3)
				alerta[0] = "Coloque um nome com no mínimo 3 caracteres.";
			
			if(frm.mail.value.indexOf("@") == -1 || frm.mail.value.indexOf(".") == -1 || frm.mail.value == "" || frm.mail.value == null)
				alerta[1] = "Coloque um e-mail válido";

			if(frm.ddd.value.length < 2)
				alerta[2] = "Ponha seu DDD corretamente. Ex.: 86";
		
			if(frm.telefone.value.length < 8)
				alerta[3] = "Ponha um número válido de 8 dígitos";
			
			if(frm.assunto.value.length < 3)
				alerta[4] = "Coloque algum assunto com no mínino 3 caracteres";
			
			if(frm.mensagem.value.length < 3)
				alerta[5] = "Coloque alguma mensagem com no mínimo 3 caracteres";
			
			var error
			for(var i = 0; i < alerta.length; i++)
			{
				if(alerta[i] != null)
					error += "\n" + alerta[i];
			}
			
			if(!error)
			{
				alert("Sua mensagem está sendo enviada.");
				return true;
			}
			else
			{
				error_ = error.substr(10);
				alert(error_);
				return false;
			}
		}

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.