When not to use this.form.submit()

So ok, I’ve run into this problem in the past where I’m using an onclick event to submit a form from a button control. When you click the button you get a nice little Javascript error stating:

“this.form.submit is not a function”

Bugger…wtf?

This only seems to happen when you have a form element named “submit” already on your page, so the browser treats that “submit” element as an object which is of course NOT a function.

I seem to run into this when I want 2 ways of submitting the form as follows:

<form>
   ...
   <input type="submit" name="submit" id="submit" value="Submit Me" />
   <input type="button" name="submit2" id="submit2" value="Save Me" onclick="this.form.submit();" />
</form>

Note the name of the submit button is “submit”, hence causing an error :(

Make sure you don’t name your submit button as “submit” when you want to have multiples submits:

<form>
   ...
   <input type="submit" name="btnSubmit" id="btnSubmit" value="Submit Me" />
   <input type="button" name="btnSave" id="btnSave" value="Save Me" onclick="this.form.submit();" />
</form>
Post a Comment or Leave a Trackback

14 Comments

  1. Vignesh
    February 8, 2007 at 10:37 am | Permalink

    Very useful information. I wasted some hours in identifying the solution by myself.

  2. September 27, 2007 at 12:09 pm | Permalink

    You rule man.
    Thanks you very much !

  3. shocker
    January 3, 2008 at 3:37 pm | Permalink

    you saved my day man!

  4. February 25, 2008 at 7:51 am | Permalink

    Thanks, you saved me a good deal of headache.

  5. Gary
    April 6, 2008 at 1:44 pm | Permalink

    Using Firefox, the button can be named ’submit’ and the JavaScript still works. The error appears to only be in IE.

  6. June 30, 2008 at 2:11 pm | Permalink

    Very useful tip, thanks!

  7. pike
    August 21, 2008 at 1:49 pm | Permalink

    doh :-) thanks, found this page quick enough.

    i *did* have this error in firefox, btw

  8. Ravi
    November 21, 2008 at 9:22 am | Permalink

    You Rock…
    Thanks man..keep it up

  9. nigel
    December 10, 2008 at 1:43 am | Permalink

    Thanks, you saved me a good deal of headache.

  10. troy
    January 21, 2009 at 11:58 pm | Permalink

    Muchas gracias. This was driving me crazy…

  11. Dave
    April 16, 2009 at 9:35 am | Permalink

    Nice short to-the-point solution! :)

    Thanks Michael!

  12. Alex
    September 10, 2009 at 6:37 pm | Permalink

    I second that the error does appear in Firefox, too. Thanks for the explanation, it did save me some troubleshooting

    Alex

  13. November 11, 2009 at 10:49 am | Permalink

    Thanks a million!

  14. Tommy
    January 21, 2010 at 10:09 pm | Permalink

    Saved me countless hours checking here within the first 5 minutes of searching. Thanks a lot!!

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*