Okay, so, you don't want to submit a form twice. While there are server side ways to prevent a form from being accepted twice, it's nice to prevent the need with a little client-side prevention, too. Better user experience, as a bonus.
Using jQuery, you could do this:
$(".class-on-my-submit-button").click(
function(e) {
$(this).attr('disabled', 'disabled');
}
);
The problem with this is that the disabled attribute on the button prevents the form from submitting at all in webkit browsers: Chrome and Safari (ref: http://www.google.com/support/forum/p/Chrome/thread?tid=152f74d4890dc84f&hl=en)
Instead, add a class and check for the class' existence to determine if the form should submit or not.
$(".class-around-each-form form").submit(function(e) {
if ($(this).hasClass('my-disabled-class')) { e.preventDefault(); return false; }
$(this).addClass('my-disabled-class');
return true;
});
I have a div with a class named .class-around-each-form
around each form on a particular page, a quirk specific to my set up. You could use $("form").submit(...)
also.
Stupid simple and frustrating if you didn't realize its need, or didn't test on all the browsers.