【问题标题】:Form submit button will not submit when name of button is "submit" [duplicate]当按钮名称为“提交”时,表单提交按钮将不会提交[重复]
【发布时间】:2010-08-26 00:45:12
【问题描述】:

当提交按钮的名称属性恰好是“提交”时,我无法提交要提交的表单。

代码如下:

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

请注意,我们没有使用标准输入类型“提交”,而是使用 JavaScript 输入类型“按钮”,在验证脚本 (checkForm) 返回 true 后提交表单。

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

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

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

感谢您的帮助。

【问题讨论】:

  • 最好和type="submit"一起使用
  • 是的 - 我想,但我做不到 - 我不会详细说明原因 - 说来话长,这不是我能做出的决定。

标签: javascript html forms button submit


【解决方案1】:

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

【讨论】:

  • 天啊!谢谢!很确定这就是答案......
  • 是的,这都是 Netscape 的错,因为最初决定表单字段应该反映为 form 对象上的命名属性,而不仅仅是您期望它们的 form.elements 集合。这一点,以及命名元素在document(以及在IE 更糟糕的情况下,window)上的反射已经导致了无穷无尽的问题。我们现在永远无法摆脱这种犯规的错误设计。该死的他们的胖子,<blink>ing 脸。
猜你喜欢
  • 1970-01-01
  • 2015-05-07
  • 2014-03-23
  • 1970-01-01
  • 1970-01-01
  • 2014-10-31
  • 2015-08-19
  • 1970-01-01
  • 2018-06-30
相关资源
最近更新 更多