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

(Resolvido) Duas funções onSubmit juntas


#Tigre

Pergunta

Estou tentando, desde ontem, usar estas duas funções

onSubmit="return valida_dados(this)" (que verifica se os campos foram preenchidos)

com essa

onsubmit='botao.disabled=true' (desabilita o botão após o clique)

mas parece impossível de as duas ficarem juntas.

Já tentei de várias formas e não tem jeito. Procurei em tudo que é lugar e até parece que ninguém ainda usou estas duas funçoes juntas.

O mais correto seria assim: onSubmit="return (valida_dados(this) && botao.disabled=true)" , mas só funciona a primeira.

Alguém, por gentiliza, sabe como usar as duas funções no mesmo form?

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Você pode desabilitar o botão na própria função valida_dados, abaixo vai um exemplo:

<html>
<head>
<script type="text/javascript">
function enviar_form()
{
nome = document.getElementById("nome").value;
if(nome == ""){
alert('Digite um nome');
return false;
}else{
document.getElementById("enviar").disabled = true
return true
}
}
</script>
</head>

<body>

Nome: <form name="myform" action="submit.htm" onSubmit="return enviar_form()">
<input type="text" name="nome" id="nome" size="20">
<input type="submit" id="enviar" value="Enviar">
</form>

</body>
</html>

Movendo PHP » JS.

Link para o comentário
Compartilhar em outros sites

  • 0

A melhor solução seria a proposta pelo ESerra !

Mas no caso de uma função que é chamada em vários lugares na página e o botão será desabilitado apenas no onsubmit do form (o que não vem ao caso, mas vou explicar) o correto seria isso:

<form name="myform" action="submit.htm" onSubmit="botao.disabled=true;return enviar_form()">
Ou seja, você deve desabilitar o botão antes do retorno função da função enviar_form() Por que ? O código "return" para a execução do código no momento em que ele é chamado Por exemplo, observe essa função:
function Teste(valor){
if (valor==5){
return 5
}
return 100
}
É o mesmo que:
function Teste(valor){
if (valor==5){
return 50
}else{
return 100
}
}

Sempre que o JavaScript encontra a função return ele interrompe a execução do código

Isso vale em qualquer lugar, seja em funções ou na chamada de eventos (como o onsubmit, por exemplo !)

O return também pode vir sem valor algum !

Obs.:

O tópico pode ser marcado como Resolvido ?

Link para o comentário
Compartilhar em outros sites

  • 0

Jonathan, eu já havia tentado colocar a função 'disabled' na frente da outra função, como você falou. Ele até desabilita o botão, só que se algum campo do formulário não for preenchido, o botão não volta mais ao normal, impossibilitando o sistema de envio. Só retorna se atualizar a página.

Serra, esse sistema eu também já tinha tentado um parecido. Mas esse seu FUNCIONOU de primeira. O detalhe foi aquele 'else' no final que no outro não tinha.

Valeu Serra, obrigado.

O tópico pode ser marcado como Resolvido ?

Agora sim. Obrigado pela atenção.

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,3k
×
×
  • Criar Novo...