具有相同名称属性的输入字段的多个表单?是好是坏?

Posted

技术标签:

【中文标题】具有相同名称属性的输入字段的多个表单?是好是坏?【英文标题】:Multiple Forms With Input Fields With The Same Name Attribute? Good Or Bad? 【发布时间】:2011-01-18 12:59:26 【问题描述】:

在一个页面上有多个 html 表单,其输入字段共享相同的 name 属性是否可以接受?例如,该页面包含所有玩家的列表,并且允许用户投票选出最佳玩家,因此每个玩家卡片旁边都有以下表格:

<form class="vote-for-player" enctype="application/x-www-form-urlencoded" method="post" action="/index/vote-for-best-player">
    <input type="hidden" name="player_id" value="1" />
    <input type="submit" name="vote_for_player" value="Vote" class="input-submit" />
</form>

每个表单的隐藏输入字段的值属性当然是不同的。

假设页面上有 20 个这样的表单,这意味着 20 个输入字段的名称等于“player_id”。如果我通过 HTML 验证器传递该页面,即使使用 XHTML 1.0 Strict 文档类型也是有效的。但从 Web 标准或可访问性的角度来看,这是一种可接受的做法吗?

我肯定知道一件事,它使页面的服务器端处理更容易,因为我只需要从一个名为 player_id 的 POST 字段加载值。

【问题讨论】:

【参考方案1】:

同意楼上的回答。名称完全可以,并将作为表单的响应参数传递。如果您的输入元素也具有相同的 id,则情况会有所不同 - 某些浏览器可能会在遍历您的文档的 dom 时遇到问题。

再次,想想一堆单选按钮,用户可以在其中选择性别等。它们必须具有相同的名称(但不同的 ID)...

【讨论】:

关于重复 ID:w3.org/TR/WCAG20-TECHS/F77.html 和 w3.org/TR/WCAG20-TECHS/H93.html【参考方案2】:

是的,它是有效的,我一直这样做。

【讨论】:

【参考方案3】:

是的,这很好.. 事实上,我个人认为这样做确实是一个很好的做法,因为与一堆名字相比,开发人员使用相对较少的名称工作变得相对方便.. 而且当元素打开时不同的形式它不会以任何方式导致名称空间冲突,因为要通过名称识别 js 中的元素,我们同时使用表单名称和输入字段名称,因此它不会引起任何问题...

【讨论】:

以上是关于具有相同名称属性的输入字段的多个表单?是好是坏?的主要内容,如果未能解决你的问题,请参考以下文章

使用字符串而不是符号:是好是坏?

使用 testID 自动化移动应用程序是好是坏?

VTune:使用 3 个以上端口的高价值是好是坏

虚拟成员函数对于现代 CPU 中的局部性是好是坏?

使用 Client_credential oauth 授予是好是坏? [关闭]

火爆全网的“网红带货”到底是好是坏?