Disable Submit Button Upon Form Submission

By  on  

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.

Recent Features

  • By
    Welcome to My New Office

    My first professional web development was at a small print shop where I sat in a windowless cubical all day. I suffered that boxed in environment for almost five years before I was able to find a remote job where I worked from home. The first...

  • By
    Create a CSS Flipping Animation

    CSS animations are a lot of fun; the beauty of them is that through many simple properties, you can create anything from an elegant fade in to a WTF-Pixar-would-be-proud effect. One CSS effect somewhere in between is the CSS flip effect, whereby there's...

Incredible Demos

  • By
    Introducing MooTools Dotter

    It's best practice to provide an indicator of some sort when performing an AJAX request or processing that takes place in the background. Since the dawn of AJAX, we've been using colorful spinners and imagery as indicators. While I enjoy those images, I am...

  • By
    PHP / MooTools 1.2 Accordion Helper

    The MooTools Accordion plugin seems to be the plugin that people seem to have the most problems with. It's an awesome plugin, so I can see why so many people want to use it, but I think that may be part of the problem.

Discussion

  1. Dave Doyle

    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.

  2. 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.

  3. Hugo

    How would you write a code to “redirect to an error page on duplicate submission detection.”

  4. Hugo

    oh, and my middle name is David. It may not be Dave but it is pretty close. :D

  5. 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. :)

  6. Rohini

    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.

  7. Great way of prevention. Thanks a lot. I just implemented it on one of my websites.

  8. Ava

    Does anyone have a unit test code for testing the submit button disabled when click it?

  9. roshan

    Thank boss..u saved my time

  10. manoj

    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

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!