没有<form>,<input>是否良好形成?

Gre*_*jan 211 html forms input

<input>没有它是否有效<form>

有一个标记页面中某些字段的过程,只是找到一个页面,其中包含未按预期标记的输入字段.
我花了一段时间,但得出的结果是,获取表单元素然后获取字段的过程是导致这些因素没有形成的原因.

Chr*_*heD 191

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

用于创建控件的元素通常出现在FORM元素中,但在用于构建用户界面时,也可能出现在FORM元素声明之外.这将在内部事件一节中讨论.请注意,表单外部的控件无法成功控制.

  • _当提交表单进行处理时,某些控件的名称与其当前值配对,并且这些对与表单一起提交.提交名称/值对的控件称为成功控件._ [w3c](http://www.w3.org/TR/html401/interact/forms.html#form-controls) (22认同)
  • 什么是"成功控制"? (18认同)
  • 能够将表单数据提交到服务器(除了Ajax). (7认同)
  • @PhilipSmith我知道你的评论是在*很久以前写的.但为什么你认为这是奇怪的或毫无意义的?如果控件未与服务器通信,为什么还要创建表单? (5认同)
  • @ adam-beck例如,某个AngularJS网站处理输入,操纵数据并将其发送到api.表单的HTML模板可以在没有任何表单标签的情况下编写,并且可以很好地与服务器通信. (3认同)

Wai*_*ung 70

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

<!DOCTYPE html>
<html>
<head>
  <title>test</title>
</head>
<body>
  <input type='text' />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)


Dav*_*vid 11

参考更新的规范:

HTML 5.2 - W3C 建议(2017 年 12 月 14 日)

一个与表单关联的元素可以与一个<form>元素有关系,这个元素被称为元素的表单所有者。如果与表单关联的元素不与<form>元素关联,则称其表单所有者为空。


小智 8

根据 MDN 有可能:

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

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


G-M*_*Man 7

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

需要大量的 JS,但它并不难,而且很容易作为可重用代码完成。

还有其他一些情况,我不使用带有输入的表单,例如登录页面。

希望这个推荐对某人有帮助。