如果<input>不在<form>中,它是否有效?
<input>
<form>
是的,您可以在没有表单的情况下获得有效的输入。
<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属性。它应该允许您显式地将元素与表单绑定,即使它没有包含在表单标记中。不幸的是,就目前而言,跨浏览器实现这个特性还不够好,不能依赖它。
请注意,总是可以在元素之外使用表单小部件,但如果这样做,该表单小部件与任何表单都无关。这样的小部件可以在表单之外使用,但是您应该为这些小部件制定一个特殊的计划,因为它们自己不会做任何事情。您必须使用JavaScript自定义它们的行为。
HTML5在HTML表单元素上引入了form属性。它应该允许您显式地将元素与表单绑定,即使它没有包含在表单标记中。不幸的是,就目前而言,跨浏览器实现这个特性还不够好,不能依赖它。
参考最新的规范:
HTML 5.2 - W3C推荐标准(2017年12月14日
与表单相关的元素可以与<form>元素有关系,该元素被称为元素的表单所有者。如果一个与表单相关的元素没有与<form>元素相关联,则称其表单所有者为null。
我知道这个问题很老了,但是,我已经成功地构建了许多没有表单标签的复杂数据输入页面。虽然很多人认为它不是“标准”的,但使用没有<form>的输入并不是不合适的。在我的项目中,我需要完全控制页面的行为,而默认的表单行为却成为了阻碍。能够执行页面和字段级验证(使用JS),并使用Ajax调用等“提交”数据…事实上,这是我最近最喜欢的方式。
需要大量的JS,但它不是那么困难,可以很容易地完成可重用的代码。
还有其他实例,我定义不使用表单输入,如登录页面。
希望这篇感言能帮助到一些人。
在我看来,我们可以在表单之外使用输入,甚至可以将数据发送到服务器而不将输入放在表单中,但为了SEO和网站的可读性(对于视障人士)(对一些人来说也是一样的原因 HTML5中的语义内容标签,比如section,footer, header之类的),我们必须在表单标签中使用输入。重要的是,我们要确保我们使用的代码对所有人都可用,包括视障人士,因为它不仅仅是关于网站,它是关于为每个人提供访问信息的途径