<输入>在没有<形式>的情况下格式是否正确?

Is <input> well formed without a <form>?

提问人:Greg Domjan 提问时间:7/21/2010 最后编辑:aksuGreg Domjan 更新时间:1/13/2021 访问量:128419

问:

没有它有效吗?<input><form>

有一个标记页面中某些字段的过程,刚刚发现一个带有输入字段的页面没有像我预期的那样被标记。
我花了一段时间,但发现获取表单元素然后获取字段的过程是导致这些元素被遗漏的原因,因为没有表单。

HTML 表单 输入

评论

0赞 Gabriel Hurley 7/21/2010
@Adriano - 正是我的想法。只要把它看一遍就知道了!
1赞 Greg Domjan 7/21/2010
当然,w3c 验证器,我真的应该添加一个解释,为什么会很好。
0赞 Adriano Varoli Piazza 7/21/2010
我的意思是,它可能对某些版本的 html 有效,但对其他版本无效,在这种情况下,验证器比仔细阅读标准要快得多。
3赞 unor 9/10/2013
Смотритетакже: 在 HTML/Javascript 页面中在表单之外/不使用表单的输入字段是否有任何危险?

答:

2赞 heisenberg 7/21/2010 #1

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

评论

24赞 Adriano Varoli Piazza 7/21/2010
好吧,你可以在“是”后面添加一些证据。或者澄清这适用于哪些版本的 HTML。不过,我不会贬低你。
10赞 Mattygabe 1/20/2011
因此,根据您的理由,如果用户可以去 W3 并自己查找,为什么还要有 SO?我也不会对你投反对票,但我必须同意,以清晰简洁的方式提供更多解释的人会得到赞成票,因为解释和正确答案是 SO 最有帮助的。
238赞 ChristopheD 7/21/2010 #2

<input>如果没有 A 显示有效,是(至少对于 HTML 4.01,请查看 17.2.1 的末尾):<form>

用于创建控件的元素 通常出现在 FORM 中 元素,但也可能出现在外部 FORM 元素声明的 when 它们用于构建用户 接口。这在 关于内在事件的部分。请注意, 窗体外部的控件不能是 成功的控制。

评论

8赞 Ludovic Kuty 9/9/2013
能够将表单数据提交到服务器(Ajax 除外)。
5赞 adam-beck 3/26/2015
@PhilipSmith我知道你的评论是很久以前写的。但是,为什么你认为这很奇怪或毫无意义呢?如果控件未与服务器通信,为什么还要创建窗体?
23赞 AlikElzin-kilaka 7/11/2015
什么是“成功控制”?
31赞 SantiBailors 11/12/2015
提交表单进行处理时,某些控件的名称与其当前值配对,并且这些控件对与表单一起提交。为其提交名称/值对的控件称为成功控件。 W3C系列
5赞 sr9yar 8/2/2016
@adam-beck 例如,某个 AngularJS 网站处理输入、操作数据并将其发送到 api。表单的 HTML 模板可以在没有任何表单标签的情况下编写,并且它们可以很好地与服务器通信。
95赞 Wai Yip Tung 12/29/2012 #3

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

<!DOCTYPE html>
<html>
<head>
  <title>test</title>
</head>
<body>
  <input type='text' />
</body>
</html>
14赞 Adnan Faradhi 3/19/2018 #4

根据 MDN 的说法,可以:

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

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

19赞 David 11/9/2018 #5

参考更新的规范:

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

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

13赞 G-Man 11/12/2019 #6

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

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

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

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

4赞 Abdulla Ababakre 1/13/2021 #7

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

评论

0赞 Spaceliving 11/23/2022
如果输入字段在表单之外,如何发送数据?这可能吗?