提问人:Greg Domjan 提问时间:7/21/2010 最后编辑:aksuGreg Domjan 更新时间:1/13/2021 访问量:128419
<输入>在没有<形式>的情况下格式是否正确?
Is <input> well formed without a <form>?
问:
没有它有效吗?<input>
<form>
有一个标记页面中某些字段的过程,刚刚发现一个带有输入字段的页面没有像我预期的那样被标记。
我花了一段时间,但发现获取表单元素然后获取字段的过程是导致这些元素被遗漏的原因,因为没有表单。
答:
是的,您可以在没有表单的情况下获得有效的输入。
评论
<input>
如果没有 A 显示有效,是(至少对于 HTML 4.01,请查看 17.2.1 的末尾):<form>
用于创建控件的元素 通常出现在 FORM 中 元素,但也可能出现在外部 FORM 元素声明的 when 它们用于构建用户 接口。这在 关于内在事件的部分。请注意, 窗体外部的控件不能是 成功的控制。
评论
我用 W3C 验证器检查了以下内容,它确认这是有效的。
<!DOCTYPE html>
<html>
<head>
<title>test</title>
</head>
<body>
<input type='text' />
</body>
</html>
请注意,始终可以在元素之外使用表单小部件,但如果这样做,该表单小部件与任何表单都无关。这样的小部件可以在表单之外使用,但是您应该为这些小部件制定一个特殊的计划,因为它们本身不会做任何事情。您必须使用 JavaScript 自定义它们的行为。
HTML5 在 HTML 表单元素上引入了 form 属性。它应该允许您将元素与表单显式绑定,即使它没有包含在表单标记中。不幸的是,就目前而言,跨浏览器实现此功能还不够好,无法依赖它。
参考更新的规范:
HTML 5.2 - W3C 建议(2017 年 12 月 14 日)
与表单关联的元素可以与元素建立关系,该元素称为元素的表单所有者。如果与表单关联的元素未与元素关联,则其表单所有者称为 null。
<form>
<form>
我知道这个问题已经很老了,但是,我已经成功地构建了许多没有表单标签的复杂数据输入页面。尽管许多人不认为它是“标准”的,但使用没有 .在我的项目中,我需要完全控制页面的行为方式,以及默认表单行为的阻碍。能够执行页面和字段级别的验证(使用JS)并使用Ajax调用等“提交”数据...事实上,这是我这些天喜欢的方式。<form>
需要大量的 JS,但它并不难,并且很容易作为可重用的代码完成。
还有其他情况下,我不使用带有输入的表单,例如登录页面。
希望这个推荐对某人有所帮助。
在我看来,我们可以在表单外使用输入,甚至可以在不将输入放入表单的情况下将数据发送到服务器,但是对于SEO和网站的可读性(对于视障人士)(只是一些相同的原因 HTML5 中的语义内容标签,如 section 、footer、header 之类的东西),我们必须在 form 标签中使用 input。重要的是,我们要确保我们使用的代码可供所有人使用,包括视障人士,因为它不仅与网站有关,还与为每个人提供信息访问有关。
评论