& lt; input>没有<form>

如果<input>不在<form>中,它是否有效?

有一个在页面中标记一些字段的过程,刚刚发现一个页面的输入字段没有像我期望的那样被标记 这花了我一段时间,但得出的结果是,得到表单元素的过程,然后得到字段是导致这些被错过的原因,因为没有表单
117846 次浏览

是的,您可以在没有表单的情况下获得有效的输入。

<input>没有<form> 似乎是有效的,是的(至少对于html 4.01,看17.2.1结尾附近):

创建控件的元素 通常出现在表单中 元素,但也可能出现在外部 的FORM元素声明 它们被用来建立用户 接口。这在 内在事件部分。请注意, 窗体之外的控件则不能 成功控制。< / p >

我用W3C验证器检查了下面的内容,它确认这是有效的。

<!DOCTYPE html>
<html>
<head>
<title>test</title>
</head>
<body>
<input type='text' />
</body>
</html>

根据MDN可以:

请注意,总是可以在元素之外使用表单小部件,但如果这样做,该表单小部件与任何表单都无关。这样的小部件可以在表单之外使用,但是您应该为这些小部件制定一个特殊的计划,因为它们自己不会做任何事情。您必须使用JavaScript自定义它们的行为。

HTML5在HTML表单元素上引入了form属性。它应该允许您显式地将元素与表单绑定,即使它没有包含在表单标记中。不幸的是,就目前而言,跨浏览器实现这个特性还不够好,不能依赖它。

我知道这个问题很老了,但是,我已经成功地构建了许多没有表单标签的复杂数据输入页面。虽然很多人认为它不是“标准”的,但使用没有<form>的输入并不是不合适的。在我的项目中,我需要完全控制页面的行为,而默认的表单行为却成为了阻碍。能够执行页面和字段级验证(使用JS),并使用Ajax调用等“提交”数据…事实上,这是我最近最喜欢的方式。

需要大量的JS,但它不是那么困难,可以很容易地完成可重用的代码。

还有其他实例,我定义不使用表单输入,如登录页面。

希望这篇感言能帮助到一些人。

在我看来,我们可以在表单之外使用输入,甚至可以将数据发送到服务器而不将输入放在表单中,但为了SEO和网站的可读性(对于视障人士)(对一些人来说也是一样的原因 HTML5中的语义内容标签,比如section,footer, header之类的),我们必须在表单标签中使用输入。重要的是,我们要确保我们使用的代码对所有人都可用,包括视障人士,因为它不仅仅是关于网站,它是关于为每个人提供访问信息的途径