jQuery: impedire gli invii multipli dei form

Sicuramente conoscerete il problema degli invii multipli dei form da parte degli utenti. Come possiamo rimediare a questa situazione? Con jQuery.

Useremo i custom data come flag per marcare l'avvenuto invio del form. Al contempo disabiliteremo i bottoni di invio e useremo false come valore di ritorno dell'handler dell'evento submit:


$(document).ready(function() {
    $('form').submit(function() {
        if (typeof jQuery.data(this, "disabledOnSubmit") == 'undefined') {
            jQuery.data(this, "disabledOnSubmit", {
                submitted: true
            });
            $('input[type=submit], input[type=button]', this).each(function() {
                $(this).attr("disabled", "disabled");
            });
            return true;
        }
        else {
            return false;
        }
    });
});​

Torna su