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>

16 Comments
Very useful information. I wasted some hours in identifying the solution by myself.
You rule man.
Thanks you very much !
you saved my day man!
Thanks, you saved me a good deal of headache.
Using Firefox, the button can be named ’submit’ and the JavaScript still works. The error appears to only be in IE.
Very useful tip, thanks!
doh
thanks, found this page quick enough.
i *did* have this error in firefox, btw
You Rock…
Thanks man..keep it up
Thanks, you saved me a good deal of headache.
Muchas gracias. This was driving me crazy…
Nice short to-the-point solution!
Thanks Michael!
I second that the error does appear in Firefox, too. Thanks for the explanation, it did save me some troubleshooting
Alex
Thanks a million!
Saved me countless hours checking here within the first 5 minutes of searching. Thanks a lot!!
A rule of almost any programming language:
“Don’t name your variables, methods, objects or functins like the reserved words, wich, in most cases, are exactly the specific functions names.
I have a simple solutions: I always put an “_” (underscore) in front of all my custom objects, and, in most programming languages, it’s saving me from headhecks.
Like so, “_submit” is not an reserved word.
Cheers from Romania!
Although not presently common practice, I have recently stumbled upon several apparently learned resources ( for instance, http://rickyrosario.com/blog/using-the-html-button-element-in-place-of-input-type-submit/ and http://cssglobe.com/post/7088/my-top-5-html-coding-preferences ) advising that BUTTON be used instead of INPUT for submission elements in forms.
So, in deference to those “in the know,” I have decided to use BUTTON for all of my forms from now on. The thing is, I am not very good at JavaScript and want to know how to incorporate the snippet at http://www.mollerus.net/tom/blog/2008/01/preventing_multiple_page_requests_after_doubleclic.html into my BUTTON element. You see, I realize that while INPUT elements use self closing tags which contain the VALUE attribute, BUTTON elements, to the best of my knowledge, require separate opening and closing tags that enclose their value. With this in mind, how should I modify the snippet to prevent multiple form submissions? And if I decide to have multiple buttons in a form (unlikely), what about the IE6 bug alluded to in the first link?
Thanks and sorry for being somewhat off-topic.