具有相同名称的多个表单输入元素是否有效?


11

它是有效的标记,并且对HTML / HTTP规范有效吗?如果我想拥有

<form>
<input name="email" />
<input name="email" />
<input name="email" />
</form>

那有效吗?


根据定义,同一组中的单选按钮具有相同的名称。
MrWhite 2011年

Answers:


9

SO所述

浏览器可以。但是,应用程序库解析它的方式可能有所不同。

程序应该将名称相同的项目组合在一起。尽管HTML规范没有明确说明这一点,但是它在复选框的文档中隐式声明:

“表单中的多个复选框可以共享相同的控件名称。因此,例如,复选框允许用户为同一属性选择多个值。”

附带说明一下,在PHP中,如果对字段名称使用PHP的arry语法,则可以使用具有相同名称的表单字段:

<form>
<input name="email[]" />
<input name="email[]" />
<input name="email[]" />
</form>

这将导致浏览器以PHP将用于填充以下字段的数组的语法发送表单字段:$_REQUEST['email']。如果使用PHP,则这是处理它的首选方法。


5

HTML5

非规范性部分4.10.1.3配置表单以与服务器进行通信明确表示该表单有效:

多个控件可以具有相同的名称;例如,在这里,我们为所有复选框赋予相同的名称,服务器通过查看使用该名称提交的值来区分选中了哪个复选框-像单选按钮一样,它们也被赋予带有value属性的唯一值。

对此的规范版本只是在任何地方都禁止使用,并且表单提交算法确切说明了应该生成什么请求:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.