Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Erro em condição IF


rodrigotnoma

Pergunta

Boa tarde.

Meu fonte:

<script>

function validar() {

	if (document.form1.email.value=="") 

		alert("Preencha o campo")

		else

		document.form1.submit()

	}


</script>

quando não digito nada no campo email, e clico no botão a mensagem é mostrada(alert), só que depois ele efetua o submit.]

Como faço para parar a execução se nada for digitado?

Obrigado.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Como você está chamando essa função ?

No evento onsubmit do formulário ?

Se sim, basta adcionar um return false ali para impedir que o formulário seja enviado.

if (document.form1.email.value==""){
alert("Preencha o campo")
return false
}else{
document.form1.submit()
}

Link para o comentário
Compartilhar em outros sites

  • 0

Muitas vezes nem é o document.form1.submit() que esta sendo chamado e sim o proprio formulario esta sendo submetido. Se for no evento onsubmit que tu ta chamando essa funcao, tem que ter um return nele tmb (alem do return que o Jonathan falou... assim:

<form action="paginax.html" method="post" name="form1" onsubmit="[b]return[/b] validar()">

não esquece de por aquele return false que o jonathan falo ali...

T+

Link para o comentário
Compartilhar em outros sites

  • 0

Seguinte, arrumei o código conforme a ajuda:

function validar() {
    
    if (document.form1.email.value=="") {
        
        alert("Preencha o campo")
        
        return false;
        
    }

else

    {

        
        document.form1.submit()
    }
    
    }

Deu certo sim e coloquei a função no onclick do botão.(não sei se é o correto, caso não, poderiam me explicar?)

Só que tenho uma dúvida: quando devo colocar return e quando não colocar no evento, como neste caso?

Obrigado pela ajuda.

Rodrigo

Editado por Jonathan Queiroz
Adcionar tag's (Jonathan)
Link para o comentário
Compartilhar em outros sites

  • 0

Na verdade, se tu quer usar um botao pra submeter um formutario, certamente esse botao tem que ser o submit :S

Só que tenho uma dúvida: quando devo colocar return e quando não colocar no evento, como neste caso?

Bom, pra intender, aconselho a fazer varios testes, mas vamos la:

Qualquer efento que receber um false, para na hora... e as que não receberem nada ou true, continuam. Faca assim para testar:

<input type="button" value="botao1" onclick="alert('teste');alert('teste2')">
<input type="button" value="botao2" onclick="alert('teste');return false;alert('teste2')">
Bom, você vai ver que o botao 1, vai mostrar 2 alerts e o botao 2 vai mostrar so 1. porque? porque no 2, temos um return false que vai encerrar o efeito do evento. Perceba que se tu colocar so assim:
<input type="button" value="botao2" onclick="alert('teste'); false;alert('teste2')">
Ele vai continuar mostrando os dois alerts... Isso porque não foi "retornado" um valor false pro evento. Da mesma forma, quando uma funcao sua vai validar, se ela retornar false, e na declaracao do evento não tiver o return tipo assim: onclick=" funcao()", vai ser a mesma coisa que fazer assim: onclick="false". Por isso temos que ter o return na declaracao do evento para "controla-lo". Nesse caso, aconselho você a colocar a chamada dessa sua funcao no onsubmit do form, com um return... Olha como o codigo ficaria menor:
function validar() {
    if (document.form1.email.value=="") {
        alert("Preencha o campo")
        return false;      
    }
}

<form name="form1" action="paginaPraOndeVaiASubmicao.php" onsubmit="return validar()">

Viu? Muito menos linhas, o mesmo efeito e bem mais estruturado ;-)

T+

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,6k
×
×
  • Criar Novo...