当按钮名称为“提交”时,表单提交按钮不会提交

时间:2010-08-26 00:45:13

标签: javascript html forms button submit

当提交按钮的name属性正好“提交”时,我无法在提交表单时提交。

以下是代码:

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

请注意,我们没有使用标准输入类型的“submit”,而是使用了一个输入类型的“button”,在验证脚本(checkForm)返回true之后,JavaScript用于提交表单。

奇怪的是,当且仅当name属性为“submit”时,这将不起作用。该问题区分大小写,因此以下(以及任何其他命名,包括无名称属性)将起作用:

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

我一直在查看W3C规范中提到的保留名称,但我找不到任何东西。我怀疑我在这里忽略了一些非常明显的东西,所以我希望你们中的一些人能看到我无法看到的东西。

感谢您的帮助。

1 个答案:

答案 0 :(得分:14)

您遇到问题,因为name submit覆盖了form.submit()的{​​{1}}函数引用,而<form>引用了该按钮,而不是DOM form_29.submit函数。