我通过调试发现我不应该为任何Form Elements命名name="submit",但是即使经过搜索,我也没有找到为什么的任何很好的解释?
请参见下面的简单代码示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<form action="javascript:alert('submitted');" method="post" id="test-form">
<label>Name</label>
<input type="text" name="name-field" value="" />
<input type="submit" name="submit" value="Submit Button" /> <!-- name should not be "submit" -->
<p><a href="javascript: document.getElementById('test-form').submit();">Submit Link</a></p>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果单击 “ 提交链接”,则会出现错误
未处理的错误:'document.getElementById('test-form')。submit'不是一个函数
如果你只是重命名您的提交按钮任何东西比其他name="submit"(即使你只是利用它的某些部分),或者只是删除的name="submit"属性,那么无论是提交按钮,并提交链接会工作。
我在Internet Explorer,Firefox,Opera,Chrome和Safari的最新版本中尝试了此操作。他们所有人对此都有一致的行为。
正如您在我的代码示例中看到的那样,它不涉及jQuery或任何其他JavaScript库。
我会很高兴的解释。谢谢
如果您在此处查看Mozilla文档:https : //developer.mozilla.org/en-US/docs/DOM/HTMLFormElement
您将看到表单具有.submit()方法。
此外,表单中还填充有表单中的字段。
(以下是一个示例:http : //www.devbay.com/articles/javascript/accessing-form-elements-array-with-javascript/ 我找不到应该发生的任何引用,只是发现了它。)
因此,当您创建一个名为submit它的元素时,它会覆盖内置的表单submit()方法,并且由于该元素不是函数,所以您会收到该错误消息。
| 归档时间: |
|
| 查看次数: |
888 次 |
| 最近记录: |