Bloquer botão do submit..Como?

9 respostas
andersondamasio

Olá Pessoal…
O problema é o seguinte tenho um formulário de cadastro e gostaria de evitar que o usuário clicasse duas vezes para submeter na hora de enviar os dados…isso pode acontecer porque pode haver uma demora no site da hora de enviar…
Nesse caso eu poderia bloquer o botão do submit após o usuário clicar…mas não estou conseguindo bolar uma forma de fazer isso…lembrando que o botão dever ser desativado após a validação dos dados forem efetuadas…

Alguém ja teve algum problema parecido ou tem alguma dica de como posso fazer isso??
espero que possam ajudar…
Obrigado…

9 Respostas

andersondamasio

esquecei de dizer que uso o Struts 2 em minha aplicação, utilizando também as validações do mesmo.

marciocamurati

Cara você vai resolver isso com javascript, colocando por exemplo:

<script>
function lockSubmit()    {
    document.getElementById("btEnviar").disabled = true;
}
</script>

<form ... onSubmit="lockSubmit()">
     ...
     <input type="submit" id="btEnviar" value="enviar" />
</form>

[]s

andersondamasio

Olá Marcio…
Obrigado por estar ajudando…
A sua solução quase funcionou…porem quando eu clico em submit ele faz a validação e se tem algum dado que não foi prenchido corretamente ele da o erro de validação porem ele o botão submit fica bloqueado…
neste caso o botão teria que ficar bloqueado apenas quando não houver erros de validação…

peczenyj

Ué… então só disabilita se tudo estiver ok… um simples if serve :wink:

andersondamasio

Mas pra isso eu não teria de manipular as regras automátivas de validação do struts 2?

Ou como poderia fazer isso?

flaviometalvale
<script> 
  
function desabilita()    {   
    document.getElementById("btEnviar").disabled = true;   
}  
function validaCampos(){
if(campo == ""){
//vc faz a validação dos campos e caso , não esteja tudo certo :
return false;
}
if(campo2 == ""){
//vc faz a validação dos campos e caso , não esteja tudo certo :
return false;
}
desabilita();//chama a função pela outra depois que foi verificado
return true;

}
 
</script>   
  
<form ... onSubmit="validaCampos()">   
     ...   
     <input type="submit" id="btEnviar" value="enviar" />   
</form>
andersondamasio

Olá flaviometalvale,
Eu estou usando as validações do struts para os formularios
e se eu fizer desse jeito eu terei de fazer a validação toda na braço…
Será que não existe outra forma?
Obrigado

flaviometalvale

vixe eu só sei usar JSP …sou iniciante … e não sei usar frameworks

Mas ve se vc utiliza o conceito … de validação igual ao que descrevemos …

Não sei utilizar Struts…

Javascript é o q eu uso …
Procura no forum por validação Struts

andersondamasio

Belzz Flavio…
Inicialmente vou ver se acho alguma outra solução…
mas vou estudar mais o assunto…
Mas se alguem souber de mais alguma dica por favor post ai…
Obrigado.

Criado 1 de fevereiro de 2008
Ultima resposta 1 de fev. de 2008
Respostas 9
Participantes 4