1

我的问题源于 Web 应用程序的上下文,而不是网页。在这种情况下,提交数据通常没有任何意义。您想使用控件修改应用程序中的状态。

对我来说,使用表格没有任何意义。但是我仍然需要控件/小部件来修改。这意味着我需要诸如输入之类的标签,我理解它是一个“表单控件”,表明它们应该始终包含在表单中。此外,我想在字段集标签中组织我的控件。

所以我想知道我现在是否必须将所有控件包装在表单标签中,即使这对我来说似乎在语义上不正确(因为我不会提交)。

经过几次快速搜索后,我发现了以下两个有关主题的 breif 论坛讨论:

  1. http://www.webmasterworld.com/forum21/8837.htm
  2. http://doctype.com/can-fieldset-outside-form

总而言之,在表单之外使用表单控件将在 w3c 上验证。然而,渲染可能无法在真正旧的浏览器中工作(比如 Netscape 4,我真的不在乎。)

在第一个链接中,似乎支持在表单之外使用表单控件作为在我的场景中做的语义正确的事情。然而,另一方面,当关心语义正确时,似乎应该严格在表单内使用字段集。

这是否意味着我可以随意使用表单之外的控件,但我必须将它们包装在 div 而不是字段集中,还是应该以其他方式阅读?

4

2 回答 2

2

w3c规定:

17.2.1 控制类型

用于创建控件的元素通常出现在 FORM 元素内,但在用于构建用户界面时也可能出现在 FORM 元素声明之外。这将在关于内在事件的部分中讨论。请注意,窗体外的控件不能是成功的控件。

17.10 向表单添加结构:FIELDSET 和 LEGEND 元素

FIELDSET 元素允许作者对主题相关的控件和标签进行分组。

17.10 没有提及表单元素,对我来说,这意味着除了它应该围绕控件和标签外,它的使用位置没有任何限制。17.10.2 似乎允许我在表格之外使用那些。因此,我也可以在表单之外使用字段集,只要它包含控件和标签。

于 2013-02-11T10:03:05.637 回答
0

我遇到过需要有表单控件而不需要实际提交表单的用例。

有时,包含在标签内只会让事情变得更糟,因为我可能对调用 JS 函数感兴趣,而表单只是提交并重新加载页面。我在 WindowsPhone 上使用 PhoneGap 应用程序时遇到过这种情况。

至于我,我不会太在意 W3C 验证,因为它让生活变得更加简单。

于 2013-02-11T06:55:38.213 回答