我有充分的理由想要这样做,但这是一个很长的故事,所以我忘了试图解释原因,只是问是否可以做.
我有一个页面,我需要有多个同名的表单,但我只想要提交单击提交按钮的表单.例如,以下内容可能在我的页面上:
<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>
Run Code Online (Sandbox Code Playgroud)
这可以接受吗?
Juk*_*ela 19
关于HTML 4.01规范,您可以使用form
具有相同name
属性的元素,因为它们没有唯一性要求.但这样做会破坏这些属性的目的.它们旨在使客户端脚本中的表单更容易引用:如果有<form name=foo>
,则document.foo
引用该表单.
未定义name
使用相同属性时会发生什么,但浏览器似乎做的是返回一个数组.在您的示例中,document.foo
将是一个3元素数组,document.foo[0]
作为第一个表单.但是这没用,因为(假设文档中没有其他形式)你可以使用document.forms[0]
,具有明确定义的含义.
该name
属性本身是过时的form
元素(但不包括表单字段,它一直是必不可少的).在HTML 4.01规范条款上form
说:
" name
= cdata [CI]此属性为元素命名,以便可以从样式表或脚本中引用它.注意.包含此属性是为了向后兼容.应用程序应使用该id
属性来标识元素."
在HTML5草案中,即使是正式规则也不允许使用相同的name
属性.属性on上的HTML5子句name
form
表示其值"必须form
在forms
集合中的元素中是唯一的,如果有的话".这是一个令人困惑的表述,但最安全的假设它必须在form
文档的元素中是唯一的.
sec*_*ula 10
是的,它是允许的,只有它id
必须是唯一的.但是,我不推荐它,为什么甚至让自己处于困境中.
该name
属性仅定义每个表单字段元素在发送到服务器时将表示的内容.