【问题标题】:Does fieldset have to be in a form?字段集是否必须在表单中?
【发布时间】:2010-10-14 01:54:29
【问题描述】:

我对DTD一无所知。

http://www.bls.gov/oco/ocos292.htm

在此页面上查看 fieldset 如何在表单之外使用,这很酷!我喜欢这种风格!

【问题讨论】:

  • 不错的答案here
  • 不幸的是,五年后,链接页面消失了。也许有人想创建一个显示含义的最小示例?
  • 鉴于模拟fieldset 外观需要quite complex solutions,我认为实际的解决方案是只使用它(同时记住it requires resetting min-width 充当@ 的替代品987654326@).

标签: html


【解决方案1】:

我认为这个问题中的问题和选择的答案具有误导性。 form 是否必须有 fieldsetfieldset 是否必须在 form 中是两个不同的问题,有两个不同的答案。

根据 HTML4.01 规范,字段集是表单内的有效元素,但由于它是标准块级元素,因此在其他地方也可以接受: http://www.w3.org/TR/html401/interact/forms.html#h-17.10 http://www.w3.org/TR/html401/sgml/dtd.html#block

但是,我无法想象这样的用例,除非您使用字段集进行装饰,否则使用不正确。

但是,表单不需要字段集: http://www.w3.org/TR/html401/interact/forms.html#h-17.3

【讨论】:

  • 正确用法示例:假设您希望每个输入都有一个表单,并在输入更改时提交这些表单。如果要对这些输入进行分组,则必须将 form 元素放入字段集中。
  • 规范 AFAI 中没有任何内容表明使用字段集将信息分组在一起是不正确的用法,无论是在语法还是语义方面。例如,如果您需要同时显示送货地址和帐单地址,这是一种很好的方法,可以在每个地址周围放置一个边框,并在边框中插入“Shipping”或“Billing”以区分每个地址的上下文。
  • 在字段集中有一个表单在语义上是否可以接受?
【解决方案2】:

因为没有人为无表单的字段集提供有效的用例,所以很不爽。使用没有表单的字段集的一个正当理由是当您使用输入来收集信息以进行动态显示时。输入的每次更改都会使显示的信息有所不同。填写表格并点击提交是没有意义的。您可以在字段集周围放置一个表单,但它没有用。然而,字段集在视觉上对用于控制显示(或游戏或其他)的输入进行分组。

【讨论】:

  • 这就是我使用它的目的。我写了一个实际上并没有提交到服务器的计算器。它输出到一些文本字段。我装饰了字段集以使字段脱颖而出。我使用文本字段而不是常规文本,因此可以在移动设备上轻松选择它们。
【解决方案3】:

FIELDSET 是常规的block level element,可用于任何允许块级元素的地方(BUTTON element 除外)。

【讨论】:

    【解决方案4】:

    如果您将字段集放在表单之外,则页面会验证,但我认为没有任何理由这样做,如果您阅读 xhtml 1.0 DTD,您会在字段集部分:

    fieldset 元素用于对表单字段进行分组。内容中只能出现一个图例元素,如果存在,则只能在前面加上空格。

    【讨论】:

      【解决方案5】:

      不,您不需要表单中的字段集。

      【讨论】:

      • 这不是问题!问题是您是否可以在表单元素之外使用字段集元素。
      • @John:其实没有问题。至少不在帖子正文中。彼得的回答很好。
      • @Cerebrus:问题在标题中,这个答案没有回答问题。
      【解决方案6】:

      HTML5 为 fieldset 添加了新属性:

      form_id - 指定字段集所属的一个或多个表单

      http://www.w3schools.com/tags/tag_fieldset.asp

      【讨论】:

        【解决方案7】:

        它不必在表单内,但最好至少与带有form="[form_ID]" 的表单相关。

        一个有效的用例是当您有多组控件分布在非表单内容中时。在这种情况下,您通常必须将所有相关或不相关的内容都放在表单中(不好),或者一遍又一遍地重复相同的表单(奇怪)。

        而将所有字段集链接到单个表单要容易得多。

        示例:测试或民意调查或其他需要在每个部分之后提供一些反馈的东西。

        【讨论】:

          【解决方案8】:

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

          【讨论】:

            【解决方案9】:

            我使用表单外的字段集将自定义 jquery 数据表过滤器组合在一起。我在字段集中有几个“选择”下拉元素,每个元素用于不同的过滤类别。我已经onchange附加到每个下拉的事件,以便在选择某些东西时,将相应地过滤数据表中的行。现在使用 javascript/jquery 似乎不需要实际的表单标签。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2015-08-07
              • 2012-03-12
              • 1970-01-01
              • 2015-10-04
              • 2017-06-04
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多