Form submit button will not submit when name of bu

2019-01-12 04:22发布

问题:

This question already has an answer here:

  • How send a form with Javascript when input name is “submit”? 2 answers

I am having trouble getting a form to submit when the name attribute of the submit button is precisely "submit".

Here is the code:

<input onclick="checkForm(document.form_29) && document.form_29.submit();" value="Submit" name="submit" type="button">

Note that we are not using a standard input type of "submit", but rather an input type of "button" with JavaScript being used to submit the form after a validation script (checkForm) has returned true.

The odd thing is that this will not work if and only if the name attribute is "submit". The problem is case-sensitive, so the following (and any other naming, including no name attribute) will work:

<input onclick="checkForm(document.form_29) && document.form_29.submit();" value="Submit" name="Submit" type="button">

I have been looking over the W3C specs for some mention of a reserved name, but I could not find anything. I suspect I am overlooking something really obvious here, so I'm hoping some of y'all out there can see something I can't.

Thanks for any help.

回答1:

You're having issues because the name being submit is overriding the form.submit() function reference for that <form>, instead form_29.submit refers to that button, rather than the DOM submit() function.