1

我有一个由 JavaScript 提交的表单,但有些东西破坏了它。给出的错误是

Error: TypeError: document.getElementById(...).submit is not a function
Source File: http://localhost/FormProcess.js

事实证明,当id输入字段的属性被赋予submit它严重搞砸的值时。这是否意味着 id 值不能是 JavaScript 保留字?我仍然没有得到的submit() 是甚至不是保留字,那为什么会导致问题呢?

<input type="button" id="submit" onclick="check(document.getElementById('txt1'), document.getElementById('txt2'))" />

与冲突

document.getElementById("orderForm").submit()
4

1 回答 1

4

在表单中,表单控件的名称和 ID 用于创建 DOM 表单元素的命名属性,例如:

<form onsubmit="alert(this.foo.value);" ...>
  <input name="foo" value="bar">
  <input type="submit">
</form>

所以在表单的提交处理程序中,this引用表单,并this.foo引用名称为foo的输入。因此,如果您有一个名为“submit”的表单控件,那么表单的提交属性将引用该控件,而不是提交方法。

因此,切勿使用名称与标准表单方法或属性相同的表单控件,例如,不要使用“action”、“name”、“submit”或“reset”等表单控件名称。

顺便说一句,“提交”不是保留词,它只是 DOM 表单元素的标准方法。

于 2013-05-28T23:17:31.107 回答