Question

Je cherche un script pour empêcher l'utilisateur d'appuyer sur le bouton soumettre deux fois spécialement pour les formes de traitement de fond de longue date. Je voudrais mettre en œuvre quelque chose non seulement fonctionnel mais aussi visuellement attrayant. Quelqu'un peut-il partager quelques conseils sur la façon d'y parvenir en utilisant, par exemple, scriptaculous?

Merci

Était-ce utile?

La solution

Il est pas scriptaculous, mais je l'a toujours fait comme ceci:

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;
}

Autres conseils

En utilisant prototype, vous pouvez essayer quelque chose comme ceci:

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);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top