by Thomas Beutel
...CONTEMPLATING CODE AND LIFE
...CONTEMPLATING CODE AND LIFE

Result of expression ‘document.forms[0].submit’ [[object HTMLInputElement]] is not a function.

September 15th, 2009 Posted in Programming, jQuery, javascript

I was trying to add a small delay into my form submission like so:

<form ... onsubmit="setTimeout('document.forms[0].submit()',2000);return false;">

but everytime I tried it, I got the following error:

Result of expression 'document.forms[0].submit' [[object HTMLInputElement]] is not a function.

This one had me stumped, until I realized what it was telling me… that my submit button was named “submit”.

<input type="submit" name="submit" id="Button1" />

I changed the name of the submit button and the problem went away.

<input type="submit" name="button1" id="Button1" />

Basically, Javascript provides a “convenience” by adding the names of the form inputs as children of the form. But this then clashes with preset function names, like the submit() function.

  • Liza
    Thanks, I had this exact problem. Googling for error messages saves the day.
blog comments powered by Disqus