Pregunta

Estoy buscando un script para evitar que el usuario golpear el botón de enviar dos veces especialmente para las formas de procesamiento de fondo mucho tiempo. Me gustaría poner en práctica algo no sólo funcional, sino también visualmente atractivo. ¿Alguien puede compartir algunos consejos de cómo lograr esto utilizando, por ejemplo, scriptaculous?

Gracias

¿Fue útil?

Solución

No es scriptaculous, pero siempre lo hizo así:

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

Otros consejos

El uso de prototipo se puede intentar algo como esto:

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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top