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

时间:2010-02-18 21:37:15

标签: html xhtml accessibility web-standards

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

<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 doctype,它也是有效的。但从Web标准或可访问性的角度来看,这是否是可接受的做法?

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

3 个答案:

答案 0 :(得分:14)

同意上述答案。名称完全正常,将作为表单的响应参数传递。不同的故事是,如果您的输入元素也具有相同的ID - 某些浏览器可能在遍历文档的dom时遇到问题。

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

答案 1 :(得分:4)

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

答案 2 :(得分:2)

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