Ir para conteúdo

POWERED BY:

Arquivado

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

Luciano Felli

Erro na validação de formulário

Recommended Posts

Olá galera beleza?

Estou com um problema na validação do formulário.

 

functions.js

function validaSearch()
{
d = document.form;


if (d.search1.value!="1")
{
if (d.search2.value!="1")
{
alert("Selecione pelo menos um método para pesquisa");
d.search1.focus();
return false;
}
else
{
}
}


if (d.search2.value=="1")
{
if(d.sgender.value=="0")
{
alert("Por favor diga quem você está procurando ou desmarque a opção!");
d.search2.focus();
return false;
}
else
{
}
}


if (d.search1.value=="1")
{
if (d.sname.value=="")
{
alert("Digite o nome ou desmarque a opção");
d.search1.focus();
return false;
}
else
{
}
}

return true;
}

search.php

<script type="text/javascript" src="functions.js"></script>
<form action="layout.php?page=protect_search2" method="post" name="form" id="form" onsubmit="validaSearch()">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="23%"><input name="search1" type="checkbox" id="search1" value="1" checked="checked" />
Nome:</td>
<td width="77%"><input name="sname" type="text" id="sname" size="40" /></td>
</tr>
<tr>
<td><input name="search2" type="checkbox" id="search2" value="1" />Procuro:</td>
<td><select name="sgender" id="sgender">
<option value="0">Selecione</option>
<option value="1">Homem</option>
<option value="2">Mulher</option>
</select></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="sybmit" id="sybmit" value="Buscar" /></td>
</tr>
</table>
</form>

Uma das lógicas da validação seria o seguinte: se o campo procuro estiver marcado ( search2) e o textfield (sgender) estiver vazio abrir o alert "Por favor diga quem você está procurando ou desmarque a opção!". Caso contrário continuar.

 

No entado marcado ou desmarcado o alert é exibido e o formulário é enviado ao invés de parar.

Qual será o erro?

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Luciano,

 

A principio, encontrei dois tipos de erro...

 

O primeiro:

você está checando o value do checkbox, que indepentemente dele estar marcado ou não, sempre será o mesmo valor, você deve verificar se o "checked" é true ou false (marcado ou desmarcado)...

 

O segundo:

no onSubmit, você está chamando a função, o problema é que não importa o que a função retorne, o submit sempre será executado a não ser que você coloque assim: onSubmit="return validaSearch()"...

 

E dica... se você não for usar o parâmetro "else" do "if" não precisa coloca-lo, como você fez... "else{}"

 

resumindo, e sem modificar a lógica do seu código, ficou assim:

 

java script:

function validaSearch(){
	d = document.form;
	
	if (d.search1.checked==false){
		if (d.search2.checked==false){
			alert("Selecione pelo menos um método para pesquisa");
			d.search1.focus();
			return false;
		}
	}

	if (d.search2.checked==true){
		if(d.sgender.value=="0"){
			alert("Por favor diga quem você está procurando ou desmarque a opção!");
			d.search2.focus();
			return false;
		}
	}

	if (d.search1.checked==true){
		if (d.sname.value==""){
			alert("Digite o nome ou desmarque a opção");
			d.search1.focus();
			return false;
		}
	}
	return true;
}

e o form ficou assim:

<form action="layout.php?page=protect_search2" method="post" name="form" id="form" onsubmit="return validaSearch()">

Por favor... envie um post se resolver para ajudar os outros que tenham o mesmo problema...

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.