Frage

Ich bin auf der Suche nach einem Skript der Benutzer zu verhindern, schlägt die Absenden-Button zweimal speziell für lange Zeit der Hintergrundverarbeitung bildet. Ich möchte etwas implementieren, nicht nur funktional, sondern auch optisch ansprechend. Kann jemand Aktie einige Tipps, wie diese verwendet zu erreichen, zum Beispiel scriptaculous?

Danke

War es hilfreich?

Lösung

Es ist nicht scriptaculous, aber ich habe es immer so:

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

Andere Tipps

Prototyp Verwenden Sie so etwas wie dies ausprobieren können:

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);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top