15 Sep 2009 Result of expression ‘document.forms[0].submit’ [[object HTMLInputElement]] is not a function.
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.