<fieldset>标签是否必须在<form>表单内?

24

2
这里有一个不错的答案:链接 - Déjà vu
1
很遗憾,五年后这个链接已经失效了。也许有人想创建一个最小化的示例来展示原意? - Tom Zych
考虑到模拟 fieldset 外观需要 相当复杂的解决方案,我认为实际解决方案是直接使用它(同时记住 需要重置最小宽度 以便作为 div 的替代品)。 - Nickolay
9个回答

32

我认为这个问题和所选答案是误导性的。一个 form 是否必须有一个 fieldset,以及一个 fieldset 是否必须在一个 form 中,这是两个不同的问题,有两个不同的答案。

根据HTML4.01规范,fieldset 是一个有效的元素,可以出现在 form 中,但作为标准块级元素,它也可以出现在其他地方: http://www.w3.org/TR/html401/interact/forms.html#h-17.10 http://www.w3.org/TR/html401/sgml/dtd.html#block

然而,我无法想象一种情况下会这样做,除非你正在使用 fieldset 进行装饰,这将是错误的用法。

然而,一个表单并不需要一个 fieldsethttp://www.w3.org/TR/html401/interact/forms.html#h-17.3


3
好的,我会尽力以最简明的语言进行翻译。下面是需要翻译的内容:请想象一下,如果您想要在每个输入框中都有一个表单,并在输入更改时提交这些表单。如果您想要对这些输入框进行分组,您需要将“form”元素放在字段集(fieldset)中。 - skalee
6
据我的理解,规范中并没有明确禁止使用fieldset标签将信息进行分组,无论是从语法还是语义的角度来看。举个例子,如果你需要展示运输和账单地址,使用fieldset标签可以很好地将它们分组,并在每个fieldset周围添加边框,并在边框内部加入“Shipping”或“Billing”等文本,以区分它们的上下文。 - AaronLS
3
把表单放在fieldset标签内,在语义上是否可接受? - Cameron Martin
1
当然,表单上的一组字段与相应的确认/摘要页面上显示的同一组字段一样有效。 - ban-geoengineering

10

因为没有人提供没有表单的fieldset的有效用例,所以我要重新激活。在不使用表单收集信息以供动态展示的情况下,使用fieldset的有效原因是每次输入的更改都会影响显示的信息。没有填写表单和点击提交的感觉。你可以在fieldset周围放一个表单,但它是无用的。然而,fieldset通过视觉上组合用于控制显示(或游戏或其他)的输入。


这是我正在使用它的方式。我写了一个计算器,它实际上并没有提交到服务器,而是输出到一些文本字段中。我用装饰来突出显示这些字段集。我使用文本字段而不是常规文本,因此它们可以在移动设备上轻松选择。 - Dex

8

5
如果将一个 fieldset 放在 form 外部,页面能够通过验证,但我没有发现有什么好的理由这样做。如果你阅读 xhtml 1.0 DTD,你会在 fieldset 部分找到以下注释:
“fieldset 元素用于组合表单字段。内容中应该只出现一个 legend 元素,如果有的话,应该只在空格之前出现。”

2

这个元素不一定要放在表单(form)内,但最好至少与表单相关,可以通过使用form="[form_ID]"来关联表单。

一个有效的用例是当您有多组控件分散在非表单内容中时。在这种情况下,您通常需要将所有内容(相关或不相关)都放在表单内(糟糕),或者重复相同的表单多次(奇怪)。

而只需将所有字段集链接到单个表单中就容易得多。

例如:测试或投票等需要在每个部分之后提供一些反馈的内容。


2

2
不,表单中不需要使用fieldset。

7
不是这个问题!问题是你是否可以在表单元素之外使用 fieldset 元素。 - John Topley
@John:实际上,没有问题。至少在帖子正文中没有。而Peter的答案已经很好地解决了这个问题。 - Cerebrus
9
问题在标题中,这个回答没有回答问题。 - mbillard

1

是的,因为 fieldset 元素用于将相关的表单字段分组。


1
我在表单外使用了一个fieldset来将自定义jquery datatable筛选器分组。我在fieldset中有几个“select”下拉元素,每个用于不同类别的筛选。我为每个下拉列表附加了onchange事件,以便在选择某些内容时,数据表中的行会相应地被筛选。实际上,现在使用javascript/jquery似乎并不需要真正的表单标签。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接