componente do tipo scriptaculoso para evitar o submitido duplo
-
22-09-2019 - |
Pergunta
Estou procurando um script para impedir que o usuário atinja o botão Enviar duas vezes, especialmente para os formulários de processamento de fundo de longa data. Eu gostaria de implementar algo não apenas funcional, mas também visualmente atraente. Alguém pode compartilhar algumas dicas de como fazer isso usando, por exemplo, scriptaculous?
Obrigado
Solução
Não é scriptaculoso, mas eu sempre fiz assim:
Html:
<form onsubmit="return checkDoubleSubmit(this) && yourSubmitroutine();">
<input ...>
...
<input type="hidden" value="0" id="dscheck">
</form
JavaScript:
function checkDoubleSubmit(form) {
var v = 0;
var e = form.getElementById("dscheck");
if (e != null) {
v = e.value;
v = v * 1; // Coerce to number
e.value = "1";
}
return v == 0;
}
Outras dicas
Usando o protótipo, você pode tentar algo assim:
var DoubleSubmit = {
prevent: function(){
var forms = document.body.select('form');
forms.invoke('observe', 'submit', DoubleSubmit.observeSubmit);
},
observeSubmit: function(event){
var submitButtton = event.element().select('input[type="submit"]')[0];
submitButtton.disable();
return true;
}};document.observe('dom:loaded',DoubleSubmit.prevent);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow