【发布时间】:2013-01-07 02:33:11
【问题描述】:
这是一个“最佳做法”问题。我正在阅读 Code Review StackExchage 网站,我看到了 this thread。在其中,Joseph Silber 建议对具有多个结构相同的表单输入行的表单使用括号表示法并完全避免使用 ID。
在我读过的有关网页设计/开发的书籍中,我从未见过使用过这种策略。在标签标签中使用括号表示法和包装输入元素,以及在表单输入中不使用 id 标签是个好主意吗?也许关于 Javascript/JQuery 的某些东西使这种方法具有优势?
我想直接问约瑟夫这件事,但我在网站上还没有任何声誉,所以我什至无法发表评论。但是,我有兴趣看到整个社区对此的看法,因为到目前为止,搜索“HTML5 括号表示法”和“HTML5 数组表示法”之类的内容对我来说还没有确定的结果。
以下是上述问题的摘要,其中包含从链接问题中借用的一些示例代码:
为什么要使用这个:
<label>Comment:
<input type="text" name="comment[]" width="50" />
</label>
而不是这个:
<label for="comment-0">Comment: </label>
<input type="text" id="comment-0" name="comment-0" width="50" />
在具有多行相同输入的表单中?
【问题讨论】:
-
其他语言不清楚,但是在PHP中,这会导致发布的消息看起来像
$_POST["comment"][0],$_POST["comment"][1]等,更容易处理。 -
@Passerby 有道理,谢谢!
-
对于将输入字段包装在标签中,这一直是有效的(并且经常被推荐)。这实际上意味着您可以省略
for-attribute,因为它已经暗示了它属于哪个输入字段。 -
在标签中包装表单控件也提高了可访问性、可用性和 imo 使它们的样式更容易
-
隐式(标签元素内的表单控件)和显式(标签和表单控件元素是分开的)关联之间存在权衡。隐式可以提高 a11y 和可用性,因为当单击/悬停标签时,焦点会自动传递给表单控件。这进一步提高了可用性,因为它使表单控件的可点击区域更大。
标签: html web-standards