我有理由想要这样做,但这是一个漫长的故事,所以我会忘记解释为什么,只要问是否可以做.
我有一个页面,我需要具有相同名称的多个表单,但是我只想要提交点击提交按钮的表单.例如,以下内容可能在我的页面上:
<form name="input" action="" method="get"> Username: <input type="text" name="user" /> <input type="submit" value="Submit" /> </form> text <form name="input" action="" method="get"> Username: <input type="text" name="user" /> <input type="submit" value="Submit" /> </form> text <form name="input" action="" method="get"> Username: <input type="text" name="user" /> <input type="submit" value="Submit" /> </form>
这可以接受吗
解决方法
关于HTML 4.01规范,您可以使用具有相同名称属性的表单元素,因为它们没有唯一性要求.不过这样做是为了打败这样的属性的目的.它们旨在使客户端脚本中的表单更容易引用:如果您有< form name = foo>,则document.foo引用该表单.
当使用相同的名称属性时会发生什么,但是什么浏览器似乎要做的是返回一个数组.在你的例子中,document.foo将是一个3元素的数组,document.foo [0]是第一个表单.但是这没有用,因为(假设文档中没有其他表单),你可以使用document.forms [0],具有明确的含义.
名称属性本身对于表单元素过时(但不适用于表单字段,其中它必须保留). HTML 4.01 spec clause on form
说:
“name = cdata [CI]
此属性命名元素,以便可以从样式表或脚本引用该元素.注意.此属性已被包括用于向后兼容.应用程序应使用id属性来标识元素.
在HTML5草稿中,即使是正式规则也不允许使用相同的名称属性. HTML5 clause on the name
attribute on form
表示,它的价值“在表单收集中的表单元素中必须是唯一的,如果有的话”.这是一个混乱的表述,但最安全的是假定它在文档的表单元素中必须是唯一的.