是否可以使用多个具有相同名称的HTML表单?

Nat*_*ate 19 html forms html5

我有充分的理由想要这样做,但这是一个很长的故事,所以我忘了试图解释原因,只是问是否可以做.

我有一个页面,我需要有多个同名的表单,但我只想要提交单击提交按钮的表单.例如,以下内容可能在我的页面上:

<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子句nameform表示其值"必须formforms集合中的元素中是唯一的,如果有的话".这是一个令人困惑的表述,但最安全的假设它必须在form文档的元素中是唯一的.


sec*_*ula 10

是的,它是允许的,只有它id必须是唯一的.但是,我不推荐它,为什么甚至让自己处于困境中.

name属性仅定义每个表单字段元素在发送到服务器时将表示的内容.

  • `form`元素的`name`属性不会影响发送到服务器的数据.您可能将其与表单字段的`name`属性混淆. (6认同)