如果我有一个将根据用户选择过滤表的SELECT标记,那么SELECT标记是否需要在FORM标记中(为有效的HTML5),如果JS禁用,则生成的功能将不起作用(即我们将显示整个表或“更多”链接,而不是在选择表单操作/提交选项时执行服务器端过滤器(我们可以在JS中编写select,以便在JS禁用时从标记中消失。
或者,无论用法如何,所有表单元素都必须位于表单标记中(因此为null'action'属性值)。
我知道HTML5几乎可以提供任何内容,但我无法在W3上找到明确的答案,所以我想我会理解你的想法。希望有道理。 欢呼声。
答案 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>
元素相关联,则表示其表单所有者为空。
随时随心所欲地使用它们!