Disable Submit Button Upon Form Submission
Multiple clicks on a "Submit" button can cause duplicate processing if your programming is slow or the user's connection is lagging. Duplicate processing can include duplicate database records, multiple emails, or different types of errors. JavaScript provides an easy way to disable the multiple submission of a form once the form has been submitted.
The Code
In the HTML, use the following "onsubmit" information:
It's important to trigger the even on form submission -- not everyone clicks the "submit" button. You will also need to give your submit button the submit_button ID attribute.
![Detect DOM Node Insertions with JavaScript and CSS Animations]()
I work with an awesome cast of developers at Mozilla, and one of them in Daniel Buchner. Daniel's shared with me an awesome strategy for detecting when nodes have been injected into a parent node without using the deprecated DOM Events API.
![Create Namespaced Classes with MooTools]()
MooTools has always gotten a bit of grief for not inherently using and standardizing namespaced-based JavaScript classes like the Dojo Toolkit does. Many developers create their classes as globals which is generally frowned up. I mostly disagree with that stance, but each to their own. In any event...
![New MooTools Plugin: ElementFilter]()
My new MooTools plugin, ElementFilter, provides a great way for you to allow users to search through the text of any mix of elements. Simply provide a text input box and ElementFilter does the rest of the work.
The XHTML
I've used a list for this example...
![Introducing MooTools LazyLoad]()
Once concept I'm very fond of is lazy loading. Lazy loading defers the loading of resources (usually images) until they are needed. Why load stuff you never need if you can prevent it, right? I've created LazyLoad, a customizable MooTools plugin that...
As an aside, if you’re also using any javascript validation, disable the submit button only after you’ve passed the validation tests.
Also, if the form is output programattically and the results stored in a DB, you can incorporated a unique hidden value in the form and redirect to an error page on duplicate submission detection.
Great tips (and name) Dave!
I’ve never been a fan of “disabling” elements on a website, but if it can save a developer lots of cleanup in the long run, I say do it.
How would you write a code to “redirect to an error page on duplicate submission detection.”
oh, and my middle name is David. It may not be Dave but it is pretty close. :D
thanks for the tip… might also be a good idea to apply some sort of visual display so your users know the server is working. :)
Hi David,
I’m having a really hard time trying to disable a submit (IMAGE) button when the page is submitted in APEX 3.2.
I cannot get the SUBMIT button to disable itself. Somehow this only works on HTML Buttons rather than IMAGES from CSS Templates.
Would appreciate it if you could suggest an alternative.
Thanks.
Great way of prevention. Thanks a lot. I just implemented it on one of my websites.
Does anyone have a unit test code for testing the submit button disabled when click it?
Thank boss..u saved my time
i can’t disable the submit button because i have some validation before page submit.if the validation failed the button is permanently disabled please some one assist