我想通过调试,我不应该命名任何表单元素name="submit"
,但即使搜索我没有找到任何好的解释,为什么?为什么表单元素不应该被命名为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>
- 如果按Enter键,而任何形式的元素或点击的 提交按钮,它会工作。
如果在点击提交链接,就会有错误
未处理的错误:“提交“的document.getElementById(”测试形式)”不是一个函数
如果你只是重命名您提交按钮比name="submit"
其他任何东西(即使你只是利用它的某些部分),或者只是删除name="submit"
属性,然后提交和提交链接将工作。
我在最新版本的Internet Explorer,Firefox,Opera,Chrome和Safari中试过这个。所有这些人都有一致的行为。
正如您在我的代码示例中所看到的,没有涉及jQuery或任何其他JavaScript库。
我将不胜感激解释。谢谢
现在有道理。所以最好的做法是避免任何表单元素名称中的所有表单方法。谢谢 – cusman
“最佳实践”有时很难定义,但可以肯定地说,如果你遵循这个经验法则,你不应该遇到麻烦。 –