嵌套的字段集

问题描述 投票:11回答:3

编辑:Downvotes迫使我重新提出这个问题。

使用字段集表示子部分在语义上是否正确?

= Basic Info =
   First Name: ________
    Last Name: ________

= Address =
Business Name: ________
      Streeet: ________
         City: ________

你如何处理嵌套的表单部分?有没有更好的方法,默认情况下看起来也没问题?

html semantics
3个回答
18
投票

是的,它在语义上是正确的。


15
投票

你基本上问了两个问题:

如果它在语义上是正确的你的例子,并且你可以嵌套fielset元素。

这里给出的一些答案是错误的。

它在语法上是正确的,但在语义上不正确,您可以嵌套fieldset元素。

由于形式不是表象元素,因此它在语义上不正确。表用于显示行和列中的信息,而您显然没有这样做。桌子不是制作好形式的道具,这就是你使用它的方式。

接下来可能会有一些建议。

参考HTML5标准,我引用了提案文档:“表单的每个部分都被视为一个段落,通常使用p元素与其他部分分开。”

http://dev.w3.org/html5/spec/single-page.htm第4.10节

http://dev.w3.org/html5/spec-LC/forms.html

应该回答嵌套问题。

我想这个问题来自于知道如何分割表单内容的愿望。答案是使用字段集。表单本身有一个含义,所以“是”,它将是一个包含所有表单元素的字段集(并且可能被禁用)。

回到你的例子,你将有一个“注册”字段集和注册的部分按嵌套字段集分组,因为你的例子中的一个这样的部分是“地址”。

制作表单的“更好”方式......这取决于我认为这是另一个问题,在HTML5准备就绪并在所有浏览器中正确实施之前,这个问题仍将继续讨论。


4
投票

是的,有一个嵌套in the specs的例子。

<fieldset name="clubfields" disabled>
 <legend> <label>
  <input type=checkbox name=club onchange="form.clubfields.disabled = !checked">
  Use Club Card
 </label> </legend>
 <p><label>Name on card: <input name=clubname required></label></p>
 <fieldset name="numfields">
  <legend> <label>
   <input type=radio checked name=clubtype onchange="form.numfields.disabled = !checked">
   My card has numbers on it
  </label> </legend>
  <p><label>Card number: <input name=clubnum required pattern="[-0-9]+"></label></p>
 </fieldset>
 <fieldset name="letfields" disabled>
  <legend> <label>
   <input type=radio name=clubtype onchange="form.letfields.disabled = !checked">
   My card has letters on it
  </label> </legend>
  <p><label>Card code: <input name=clublet required pattern="[A-Za-z]+"></label></p>
 </fieldset>
</fieldset>
© www.soinside.com 2019 - 2024. All rights reserved.