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

Get your free chapter of Level Up Your Web Apps with Go

Get a free chapter of Level Up Your Web Apps with Go, plus updates and exclusive offers from SitePoint.