为什么在HTML5中使用括号表示法?

时间:2013-01-07 02:33:12

标签: html5 web-standards

这是一个“最佳做法”问题。我正在仔细阅读Code Review StackExchage网站,我看到了this thread。在其中,Joseph Silber提出了使用括号表示法和完全避开ID的建议,用于具有多个相同结构的表单输入行的表单。

在我读过的关于网页设计/开发的书中,我从未见过这种策略。在标签标签中使用括号表示法和包装输入元素,以及在表单输入中不使用id标签是一个好主意吗?也许有一些关于Javascript / JQuery的东西使这种方法有利吗?

我想直接询问约瑟夫,但我在网站上没有任何声誉,所以我甚至无法发表评论。但是,我有兴趣看到整个社区对此的看法,因为搜索“HTML5括号表示法”和“HTML5 arraylike表示法”之类的东西到目前为止对我来说并不是最直接的。

以上是上述问题的摘要,其中一些示例代码来自链接问题:

为什么要用这个:

<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" />

以具有多行相同输入的形式?

1 个答案:

答案 0 :(得分:5)

在输入名称末尾粘贴[]将导致某些服务器端表单处理库将数据显示为数组。其他一些表单处理器不需要特殊语法。您的选择在很大程度上取决于您希望与前者兼容,而不是具有更复杂的名称,并且无法通过JS中的点符号访问元素。

使用子元素而不是for属性将:

  • 使您不必生成唯一ID(如果类似表单可以显示在单个页面上,则特别有用)
  • 限制您的样式选择
  • 与更少的浏览器兼容(我认为唯一的损失是IE的旧版本,这不会有太大损失。)

因此,在那里有利有弊,你必须决定它适合你。