我有一个由JavaScript提交的表单,而且有些东西破坏了它。给出的错误是
Error: TypeError: document.getElementById(...).submit is not a function
Source File: http://localhost/FormProcess.js
事实证明,当输入字段的id
属性被赋值为submit
时,它严重地搞砸了。这是否意味着id值不能成为JavaScript保留字?我仍然没有得到的是submit()
isn't even a reserved word,为什么会导致问题?
<input type="button" id="submit" onclick="check(document.getElementById('txt1'), document.getElementById('txt2'))" />
与
发生冲突document.getElementById("orderForm").submit()
答案 0 :(得分:4)
在表单中,表单控件的名称和ID用于创建DOM表单元素的命名属性,例如:
<form onsubmit="alert(this.foo.value);" ...>
<input name="foo" value="bar">
<input type="submit">
</form>
因此,在表单的提交处理程序中,this
引用表单,this.foo
引用名为 foo 的输入。因此,如果您的表单控件名称为“submit”,则表单的submit属性将引用控件,而不是submit方法。
所以永远不要使用名称与标准表单方法或属性相同的表单控件,例如不要使用表单控件名称,如“action”,“name”,“submit”或“reset”。
BTW,“submit”不是reserved word,它只是DOM表单元素的标准方法。