jQuery Prevent Multiple Form Submit

Sam Deering
Tweet

It might be useful on some forms to prevent multiple submits on a form by accident. This code binds the submit event and stores disabledOnSubmit” data so next time the event “submit” fires it will return false. All submit buttons are also disabled so the form cannot be submitted twice.

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

Free JavaScript: Novice to Ninja Sample

Get a free 32-page chapter of JavaScript: Novice to Ninja and receive updates on exclusive offers from SitePoint.