Ir para conteúdo

POWERED BY:

Arquivado

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

osonintorrincos

Validação de form não funciona!

Recommended Posts

Não aguento mais, estou tentando validar um formulário mas alguma coisa dá errado. O caso é o seguinte: esse formulário tem que ter um ACTION dinâmico. Criei um script para resolver esse problema.

 

Gostaria do seguinte: ao executar a função Novo() o formulário fosse validado e depois enviado. O problema é que a validação funciona, mas o formulário é enviado mesmo que os campos não estejam preenchidos.

 

<script language="javascript">function Atualiza() {frmnovotelefone.action = "transaction.asp?action=update";frmnovotelefone.submit();}function Apaga() {frmnovotelefone.action = "transaction.asp?action=delete";frmnovotelefone.submit();}function Novo() {frmnovotelefone.action = "transaction.asp?action=novo";d=document.frmnovotelefone;if(d.nome.value==""){alert("O campo NOME deve ser preenchido!");d.nome.focus();return false;}else if(d.telefone.value==""){alert("O campo TELEFONE01 deve ser preenchido!");d.nome.focus();return false;}else {frmnovotelefone.submit();}}</script>
Por favor, se alguém puder me dar uma mão, agradeço pois não aguento mais esse maldito script que não funciona. http://forum.imasters.com.br/public/style_emoticons/default/sick.gif

 

PS: A função é chamada no evento onClick do botão. O evento onSubmit do formulário está vazio. Já tentei trocar, mas não dá certo. Já tentei colocar a validação no onSubmit e a ACTION seletiva no onClick mas não dá certo tbm.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um exemplo que funciona:form html

<form name="form1" id="form1" method="post" action="contato.php acao=enviado" onsubmit="return validaContato(this);"><label for="nome">Nome:</label><input name="nome" type="text" class="text" id="nome" value="" /><br /><label for="email">Email:</label><input name="email" type="text" class="text" id="email" value="" /><br /><label for="assunto">Assunto:</label><input name="assunto" type="text" class="text" id="assunto" value="" /><br /><label for="mensagem">Mensagem:</label><textarea name="mensagem" class="textarea" id="mensagem"></textarea><br /></div><input type="submit" value="Enviar" id="submit"  /></form>

Agora o javascript usado para validar:

function validaContato(frm){  if(frm.nome.value.replace(/\s/gi,"")==""){    frm.nome.focus();    alert("Você esquecer de digitar o seu nome.");    return false;  }  if(frm.email.value.indexOf("@")==-1){    frm.email.focus();    alert("Você esqueceu de digitar o seu email.");    return false;  }  if(frm.assunto.value.replace(/\s/gi,"")=="") {    frm.assunto.focus();    alert("Você esqueceu de digitar o assunto.");    return false;  }  if(frm.mensagem.value.replace(/\s/gi,"")==""){    frm.mensagem.focus();    alert("Digite sua mensagem.");    return false;  }  return true;  }

assim, sempre funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema não é validar o formulário em si, mas sim fazer a integração dos dois scripts: o que faz a ACTION DINÂMICA e o que VALIDA o form.É assim: um form, dois botões. Se clicar em um, o formulário é enviado para uma página. Se clicar no outro, é enviado para outra. Uso o script acima. Mas quando tento adicionar a validação, acontece o seguinte: o formulário é validado, mas não importa o resultado, a página é postada.É possível colocar no mesmo script a validação é o envio seletivo?Brigadão pela atenção pessoal

Compartilhar este post


Link para o post
Compartilhar em outros sites

se tu utilizar um button ao invés de um submit você consegue fazer isso q quer...

<input type="button" value="Enviar" id="submit"  />

Só q dae depois de validar você tem q submitar o formulário.

document.formName.submit()
Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

usando button você deve fazer via codigo o submit depois da validaçãousando submit você pode validar no onsubmit do form

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

Estou com o mesmo problema ... "Tenho um form com dois botões. Se clicar em um, o formulário é enviado para uma página. Se clicar no outro, é enviado para outra. Mas quando tento adicionar a validação, acontece o seguinte: o formulário é validado, mas não importa o resultado, a página é postada.".

 

Vi a última solução postada aqui, mas não posso colocar

<input type="button" value="Enviar" id="submit"  />
já que o type do meu botão é IMAGE. Qual seria uma outra solução? Já pesquisei pra caramba e não encontrei..

 

Meu código está assim:

<script Language="JavaScript">function Valida(form1){   if (form1.cmbTipo.value == ""){		alert("Por favor, escolha o 'Tipo' do curso.");		form1.cmbTipo.focus();		return (false);	}	   //continuação do codigo de validação		return (true);}function btnSalvar() {	document.form1.action = '../tecs/tec-cad-curso.asp';	document.form1.submit();}function btnSalvarClonar() {	document.form1.action = '../tecs/tec-cad-curso.asp?clonar=s';	document.form1.submit();}//--></script>

O meu form está assim:

<form action="" method="post" name="form1" onSubmit="return Valida(this);">

E os meus botões assim:

<input name="Submit" type="image" value="Submit" src="../imagens/btn-salvar.gif" onClick="btnSalvar();"><input name="Submit2" type="image" value="Submit" src="../imagens/btn-salvar-clonar.gif" onClick="btnSalvarClonar();">

ajudem-me, plssssss! não aguento mais isso...

 

valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido! entao pra quem tiver o mesmo problema, aí vai a solução:

 

<script Language="JavaScript">function Valida(form1){   if (form1.cmbTipo.value == ""){		alert("Por favor, escolha o 'Tipo' do curso.");		form1.cmbTipo.focus();		return (false);	}	   //continuação do codigo de validação		return (true);}function btnSalvar() {	document.form1.action = '../tecs/tec-cad-curso.asp';   return Valida(form1);	document.form1.submit();}function btnSalvarClonar() {	document.form1.action = '../tecs/tec-cad-curso.asp?clonar=s';   return Valida(form1);	document.form1.submit();}//--></script>

O form ficou assim:

<form action="" method="post" name="form1">

e os botões ficaram assim:

<input name="Submit" type="image" value="Submit" src="../imagens/btn-salvar.gif" onClick="return btnSalvar();"><input name="Submit2" type="image" value="Submit" src="../imagens/btn-salvar-clonar.gif" onClick="return btnSalvarClonar();">

t+!

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.