Validação em javascript não funciona

12 respostas
G

Fiz um formulário com as validações em em javascript, porem essa validação funciona em todos os campos menos no campo de sugestão já procurei mais que tudo no código algum erro e não acho se alguém poder me ajudar agradeço
segui e código:

<html>
<head>


 <style type="text/css">
       <!--
       body{
               font:12px Arial, Helvetica, sans-serif;
       }

       label{
               display:block;
               width:100px;
               float:left;
       }
       input{
               display:block;
               width:150px;
               float:left;
       }

       #result{ margin-bottom:20px; }

       .clear{
               clear:both;
               margin-bottom:5px;
       }

       .bt{ width:auto!important; }

       label.error{ color:#FF0000; width:250px; }
       -->
       </style>
       
<script> 

// tag JavaScript   -   ### OBS ### - Todas essas explicações que estão escritas após ( // ) não são necessárias para o funcionamento do código, são apenas para explicação do código.

// // Função de validação do formulário
function ValidaFormulario () {

	// Função de validação do formulário - Nome
	if (document.formulario.Nome.value==""){ // O nome formulario se refere ao nome de seu formulario, caso queira alterar, basta mudar o nome de seu formulário e mudar todas as palavras desta tag com este nome.
		alert("Digite o seu Nome"); // Mensagem que será exibida quando o campo não for preenchido 
		document.formulario.Nome.focus(); // O nome Nome se refere ao nome do campo do seu formulário, caso queira alterar, basta mudar o nome do respectivo campo as palavras desta tag correspondentes ao nome do campo.
		return false;
	}




	// Função de validação do formulário - CPF
	if (document.formulario.cpf.value==""){ // O nome formulario se refere ao nome de seu formulario, caso queira alterar, basta mudar o nome de seu formulário e mudar todas as palavras desta tag com este nome.
		alert("Digite o seu Cpf"); // Mensagem que será exibida quando o campo não for preenchido 
		document.formulario.cpf.focus(); // O nome Nome se refere ao nome do campo do seu formulário, caso queira alterar, basta mudar o nome do respectivo campo as palavras desta tag correspondentes ao nome do campo.
		return false;
	}else{

		var cpf = document.formulario.cpf.value
		var numeros, digitos, soma, i, resultado, digitos_iguais;
		digitos_iguais = 1;
		if (cpf.length < 11){
			alert('CPF Inválido');	
			return false;

		}
		for (i = 0; i < cpf.length - 1; i++)
		if (cpf.charAt(i) != cpf.charAt(i + 1))
		{
			digitos_iguais = 0;
			break;
		}
		if (!digitos_iguais)
		{
			numeros = cpf.substring(0,9);
			digitos = cpf.substring(9);
			soma = 0;
			for (i = 10; i > 1; i--)
			soma += numeros.charAt(10 - i) * i;
			resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
			if (resultado != digitos.charAt(0))
			return false;
			numeros = cpf.substring(0,10);
			soma = 0;
			for (i = 11; i > 1; i--)
			soma += numeros.charAt(11 - i) * i;
			resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
			if (resultado != digitos.charAt(1)){
				alert('CPF Inválido');
				return false;
			}else{
				document.formulario.mensa.focus();
			}
		}else{
			alert('CPF Inválido');

			return false;
		}

	}


	// Função de validação do formulário - Email
	if (document.formulario.mensa.value=="") { 
		alert("Digite o seu Email"); 
		document.formulario.mensa.focus(); 
		return false;
	}
	//validar email(verificao de endereco eletronico)
	parte1 = document.formulario.mensa.value.indexOf("@");
	parte2 = document.formulario.mensa.value.indexOf(".");
	parte3 = document.formulario.mensa.value.length;
	if (!(parte1 >= 3 && parte2 >= 6 && parte3 >= 9)) {
		alert("O campo E-mail deve ser conter um endereco eletronico!");
		document.formulario.mensa.focus();
		return false;
	}




	// Função de validação do formulário - Telefone
	if (document.formulario.telefone.value=="") { 
		alert("Digite o Telefone"); 
		document.formulario.telefone.focus(); 
		return false;
	}

	if (isNaN(document.formulario.telefone.value)){
		alert("O campo Telefone deve conter apenas numeros!");
		document.formulario.telefone.focus();
		return false;
	}



	// Função de validação do formulário - Mensagem
	if (document.formulario.endereco.value==""){ // O nome formulario se refere ao nome de seu formulario, caso queira alterar, basta mudar o nome de seu formulário e mudar todas as palavras desta tag com este nome.
		alert("Digite o Endereço "); // Mensagem que será exibida quando o campo não for preenchido
		document.formulario.endereco.focus(); // O nome Nome se refere ao nome do campo do seu formulário, caso queira alterar, basta mudar o nome do respectivo campo as palavras desta tag correspondentes ao nome do campo.		

		return false;
	}


	// Função de validação do formulário - CEP
	if (document.formulario.cep.value=="") { 
		alert("Digite o CEP "); 
		document.formulario.cep.focus(); 
		return false;
	}

	if (isNaN(document.formulario.cep.value)){
		alert("O campo Cep deve conter apenas numeros!");
		document.formulario.cep.focus();
		return false;
	}


	if (document.formulario.bairro.value==""){ // O nome formulario se refere ao nome de seu formulario, caso queira alterar, basta mudar o nome de seu formulário e mudar todas as palavras desta tag com este nome.
		alert("Digite o Bairro "); // Mensagem que será exibida quando o campo não for preenchido
		document.formulario.bairro.focus(); // O nome Nome se refere ao nome do campo do seu formulário, caso queira alterar, basta mudar o nome do respectivo campo as palavras desta tag correspondentes ao nome do campo.		

		return false;
	}

	// Função de validação do formulário - CIDADE
	if (document.formulario.cidade.value=="") { 
		alert("Escolha uma Cidade"); 
		document.formulario.cidade.focus(); 
		return false;
	}
	
		// Função de validação do formulário - sugestao
/*	if (document.formulario.sugestao.value=="") { 
		alert("Deve ser feita a sugestão"); 
		document.formulario.sugestao.focus(); 
		return false;
	}*/
		// Função de validação do formulário - sugestao
	if (document.formulario.texto.value=="")
		{
			alert( "Preencha o campo MENSAGEM!" );
			document.formulario.texto.focus();
			return false;
		}	
	

	// Função de validação do formulário - area
	if (document.formulario.area.value=="") { 
		alert("Escolha uma Area"); 
		document.formulario.area.focus(); 
		return false;
	}

	return true;
}
// -->

</script>

</head>



<body bgcolor="#FFFFFF">

	<!-- hpG publicidade: fim -->

	<div align="center">
		<table width="392" border="0" cellpadding="0" cellspacing="0">
			<tr> 
				<td height="12" width="628">
					<p align="center"><br>
						<br>
					</font></p>
				</td>
			</tr>
			<tr> 
				<td height="19" valign="top" width="628"> 


					<form action="cadastro.php" method="post" name="formulario" id="formulario" onSubmit="return ValidaFormulario();">




						<label>Nome:</label> 
						<input name="Nome" type="text" id="Nome" size="55" onSubmit="return ValidaFormulario();">
						<div class="clear"></div>
						


						<label>Cpf:</label>
						<input name="cpf" type="text" id="Cpf" size="15" onSubmit="return ValidaFormulario();">
						<div class="clear"></div>


						

						<label>Email:</label>
						<input name="mensa" type="text" id="Email4" size="21" onSubmit="return ValidaFormulario();">
						<div class="clear"></div>

						<label>Telefone:</label>		
						<input name="telefone" type="text" id="Email3" size="19" onSubmit="return ValidaFormulario();">
						<div class="clear"></div>

						
						<label>Endereco:</label>
						<input name="endereco" type="text" id="Assunto" size="56" onSubmit="return ValidaFormulario();">
						<div class="clear"></div>


						





						<label>Cep:</label>
						<input name="cep" type="text" id="Email2" size="19" onSubmit="return ValidaFormulario();">
						<div class="clear"></div>

						
						<label>Cidade:</label>
						<select size="1" name="cidade">
							<option value="Águas Claras">Águas Claras</option>
							<option value="Brasília">Brasília</option>
							<option value="Brazlândia">Brazlândia</option>
							<option value="Candangolândia">Candangolândia</option>
							<option value="Ceilândia ">Ceilândia </option>
							<option value="Cruzeiro">Cruzeiro</option>
							<option value="Gama">Gama</option>
							<option value="Guará">Guará</option>
							<option value="Itapoã">Itapoã</option>
							<option value="Jardim Botânico">Jardim Botânico</option>
							<option value="Lago Norte">Lago Norte</option>
							<option value="Lago Sul">Lago Sul</option>
							<option value="Nucleo Bandeirante">Nucleo Bandeirante</option>
							<option value="Paranoá">Paranoá</option>
							<option value="Park Way">Park Way</option>
							<option value="Planaltina">Planaltina</option>
							<option value="Recanto das Emas">Recanto das Emas</option>
							<option value="Riacho Funado I">Riacho Funado I</option>
							<option value="Riacho Funado II">Riacho Funado II</option>
							<option value="Samambaia">Samambaia</option>
							<option value="Santa Maria">Santa Maria</option>
							<option value="São Sebastião">£o Sebastião</option>
							<option value="Scia">Scia</option>
							<option value="SIA">SIA</option>
							<option value="Sobradinho I">Sobradinho I</option>
							<option value="Sobradinho II">Sobradinho II</option>
							<option value="Sudoeste/Octogonal">Sudoeste/Octogonal</option>
							<option value="Taguatinga">Taguatinga</option>
							<option value="Varjão">Varjão</option>
							<option value="Vicente Pires">Vicente Pires</option>
						</select>
						<div class="clear"></div>
						
							
						<label>Area:</label>
						<select size="1" name="area"  id="Email4" onSubmit="return ValidaFormulario();">
							<option value="Cultura">Cultura</option>
							<option value="Educação">Educação</option>
							<option value="Emprego ">Emprego </option>
							<option value="Lazer">Lazer</option>
							<option value="Limpeza">Limpeza</option>
							<option value="Meio Ambiente">Meio Ambiente</option>
							<option value="Saneamento básico">Saneamento básico</option>
							<option value="Saúde">Saúde</option>
						</select>
						<div class="clear"></div>

						<label>Sugestão</label> 
               			<textarea name="texto" id="texto" cols="40" rows="3"> 
						</textarea> 
 
						<div class="clear"></div





						<p><input type="submit" value="Continue &rarr;"></p>
					</form>
					
</html>

12 Respostas

ronnytds

ta dando algum erro no javascript, ou ele simplesmente deixa passar o campo MENSAGEM vazio?

G

ele esta deixando passar o campo vazio o que não pode acontecer

ronnytds

tenta fazer a comparação assim:

if (document.formulario.texto.value.length==0) { alert( "Preencha o campo MENSAGEM!" ); document.formulario.texto.focus(); return false; }

G

Nem funcionou não

ronnytds

antes do if coloca um alert pra imprimir na tela o value da textarea. ficaria assim:

alert(document.formulario.texto.value) if (document.formulario.texto.value.length==0) { alert( "Preencha o campo MENSAGEM!" ); document.formulario.texto.focus(); return false; }

G

nossa que erro impossível de se tratar também não deu certo

ronnytds

ok, mas esse alert aí que eu disse pra vc colocar era pra ver qual valor ele ia mostrar, pra ver se realmente o value da textarea está vazio ou não.
o sistema mostrou alguma coisa no alert?

G

chegou nem mostrar nada do alert

ruivo

O fato de você ter dado um enter em entre as tags textarea, assim:

&lt;textarea name="texto" id="texto" cols="40" rows="3"&gt;
&lt;/textarea&gt;

já faz com que o campo nao fique vazio.
Experimente fazer o seguinte:

if (document.formulario.sugestao.value.trim()=="") {  
        alert("Deve ser feita a sugestão");  
        document.formulario.sugestao.focus();  
        return false; 
    }

Deve funcionar.

G

Putz não deu em nada. vou ver se inicio do 0 depois foi algum erro besta.

ruivo

Eu também sou uma paca mesmo…

Troque

&lt;textarea name="texto" id="texto" cols="40" rows="3"&gt;  
&lt;/textarea&gt;

por

&lt;textarea name="sugestao" id="sugestao" cols="40" rows="3"&gt;  
&lt;/textarea&gt;

O problema é que na funcao vc tenta acessar um elemento que nao existe no seu documento. Ao renomear o ‘id’ e o ‘name’ para sugestao, certeza que funciona.

Se nao funcionar agora… Seu browser é muito ninja

G

Então o problema é no IE8

Criado 7 de abril de 2011
Ultima resposta 7 de abr. de 2011
Respostas 12
Participantes 3