#Tigre Postado Março 1, 2009 Denunciar Share Postado Março 1, 2009 Estou tentando, desde ontem, usar estas duas funçõesonSubmit="return valida_dados(this)" (que verifica se os campos foram preenchidos)com essaonsubmit='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? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Março 1, 2009 Denunciar Share Postado Março 1, 2009 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Março 1, 2009 Denunciar Share Postado Março 1, 2009 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ódigoIsso 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 ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 #Tigre Postado Março 2, 2009 Autor Denunciar Share Postado Março 2, 2009 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Março 2, 2009 Denunciar Share Postado Março 2, 2009 Pra fazer o botão voltar ao normal você deve adcionar esse código na função:document.formulario.botao.disabled=falseObs.:O tópico foi marcado como Resolvido Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
#Tigre
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
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.