使用字段集表示子部分在语义上是否正确?
= Basic Info =
First Name: ________
Last Name: ________
= Address =
Business Name: ________
Streeet: ________
City: ________
您如何处理嵌套表单部分? 没有更好的方法,默认情况下看起来还可以吗?
答案 0 :(得分:18)
是的,它在语义上是正确的。
答案 1 :(得分:15)
你基本上问了两个问题:
如果它在语义上正确你的例子,并且你可以嵌套fielset元素。
这里给出的一些答案是错误的。
它在语法上是正确的,但在语义上不正确,您可以嵌套字段集元素。
由于表单不是表示元素,因此它在语义上不正确。表用于显示行和列中的信息,而您显然没有这样做。表格不是制作好表格的道具,这就是你使用它的方式。
接下来可能会有一些建议。
引用HTML5标准,我引用了提案文档:“表单的每个部分都被视为段落,通常使用p元素与其他部分分开。”
http://dev.w3.org/html5/spec/single-page.htm 第4.10节
http://dev.w3.org/html5/spec-LC/forms.html
也应该回答嵌套问题。
我想这个问题来自于知道如何分割表单内容的愿望。答案是使用字段集。表单本身有一个含义,所以“是”,它将是一个包含所有表单元素的字段集(并且可能被禁用)。
回到你的例子,你将有一个“注册”的字段集和按嵌套字段集分组的注册部分,因为你的例子中的一个这样的部分是“地址”。
制作表单的“更好”方式......这取决于我认为这是另一个问题,在HTML5准备就绪并在所有浏览器中正确实施之前,这个问题仍将继续讨论。
答案 2 :(得分: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>