Amigos,
Tenho o JS abaixo que valida meu formulário. O detalhe é que se não preencher os campos dentro do form ele avisa, mas se teclar espaço nops campos ele trata como se fosse um caracter... Alguém pode me ajudar a arrumar esse detalhe?
Valeus...
<script language="javascript">
<!--
function verify(form)
{
for(var intCtr = 0; intCtr <= (form.elements.length - 3); ++intCtr)
{
var temp = form.elements[intCtr];
if(temp.type == "text" && temp.value == "")
{
alert("Por favor preencha todos os campos solicitados");
temp.focus();
return false;
}
}
return true;
}
//-->
</script>
<form method="POST" name="theform" action="vai.asp" onSubmit="return verify(this)">
<input type="text" name="SeuNome" size="30">
<input type="text" name="Email" size="30">
<input type="text" name="Telefone" size="30">
<input type="submit" name="Submit" value="Enviar">
</form>

Validação
Started By studiovr, 01/04/2004, 17:23
3 replies to this topic
#1
Posted 01/04/2004, 17:23
#2
Posted 01/04/2004, 20:10
No seu Código vc não pode colocar == "" pq um Espaço não eh Vazio, e sim um caracter de espaço. Por isso que seu código passa na hora da validação quando vc posta um espaço.
Voce tem que testar se a propriedade legth do campo eh igual a Zero.
Testa isso aqui. É um código mais simples
No Form vc define:
Se vc usar VB na hora de Validar,
Existe a função TRIM que é muito útil. ela elimina todos os epaços vazios Direita e à esquerda.
Agora , no seu código eu nao testei a mudança...
Mas experimente trocar
Por
que deverá funcionar
Voce tem que testar se a propriedade legth do campo eh igual a Zero.
Testa isso aqui. É um código mais simples
<script LANGUAGE='JavaScript'> function valida() { var vseunome, vemail, vtelefone; vseunome = document.theform.seunome.value; if(vseunome.length==0) { alert("Favor informar Nome"); return false; } vemail = document.theform.email.value; if(vemail.length==0) { alert("Favor informar E-mail"); return false; } vtelefone = document.theform.email.value; if(vtelefone.length==0) { alert("Favor informar Telefone"); return false; } return true; } </script>
No Form vc define:
<form method="POST" name="theform" action="vai.asp" onSubmit="valida">
Se vc usar VB na hora de Validar,
Existe a função TRIM que é muito útil. ela elimina todos os epaços vazios Direita e à esquerda.
Agora , no seu código eu nao testei a mudança...
Mas experimente trocar
if(temp.type == "text" && temp.value == "")
Por
if(temp.type == "text" && temp.length==0)
que deverá funcionar

Edição feita por: Lengrat, 01/04/2004, 20:26.
#3
Posted 01/04/2004, 22:14
Deu certo!!!
Muito obrigado pela sua ajuda!!!
Muito obrigado pela sua ajuda!!!
#4
Posted 02/04/2004, 13:21
Outro modo também é:
Você cria o formulário e o input e coloca o return valida() no onsubmit da tag <form>
<script language="javascript">
<!--
function valida() {
var nome=document.forms['cadastro'].elements['nome'].value;
if (nome.indexOf(" ") != -1) {
window.alert("Caractere não aceito.");
return false;
}
return true;
document.forms['cadastro'].submit();
}
//-->
</script>
Você cria o formulário e o input e coloca o return valida() no onsubmit da tag <form>
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)