FORM标签之外的表单元素是语义html5吗?

时间:2011-03-22 01:05:49

标签: forms html5

如果我有一个将根据用户选择过滤表的SELECT标记,那么SELECT标记是否需要在FORM标记中(为有效的HTML5),如果JS禁用,则生成的功能将不起作用(即我们将显示整个表或“更多”链接,而不是在选择表单操作/提交选项时执行服务器端过滤器(我们可以在JS中编写select,以便在JS禁用时从标记中消失。

或者,无论用法如何,所有表单元素都必须位于表单标记中(因此为null'action'属性值)。

我知道HTML5几乎可以提供任何内容,但我无法在W3上找到明确的答案,所以我想我会理解你的想法。希望有道理。 欢呼声。

3 个答案:

答案 0 :(得分:77)

所有表单控件都可以在任何需要phrasing content的地方使用,这意味着它们几乎可以出现在文档正文的任何​​位置。如果您不需要将它们提交回服务器,那么就不需要将它们与表单相关联,但是我注意到在某些浏览器中您无法利用form validation features除非这些元素可能会被提交。

HTML5的一个新功能是,表单控件不再需要成为form元素的直接子元素才能使用该表单提交,form attribute允许您指定{{应该提交元素的形式。

答案 1 :(得分:17)

似乎在HTML5中,表单元素可以在<form>标记之外且仍然有效;

<!DOCTYPE html>
<html>
<head>
<title>Just making this valid</title>
</head>
<body>

<select>
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
</select>

</body>

</html>

以上代码成功验证(减去明显的字符编码错误)。 我还没有阅读整个HTML5规范,但验证器在这些问题上通常是正确的。

答案 2 :(得分:1)

The HTML5 spec明确允许<input> s(和其他与表单相关的元素)没有<form>

  

与表单相关的元素可以与<form>元素建立关系,该元素称为元素的表单所有者。如果与表单相关的元素未与<form>元素相关联,则表示其表单所有者为空。

随时随心所欲地使用它们!