为什么 WHATWG 不允许 HTML 4 和 HTML5 中的嵌套表单?
编辑:问题最初在如何克服 html 表单嵌套限制?
简而言之,作者说: 您正在制作一个博客应用程序,并且您有一个表单,其中包含一些用于创建新帖子的字段和一个带有“操作”的工具栏,例如“保存”、“删除”、“取消”……唯一的问题是按“删除”将提交服务器上的所有表单字段,即使此操作唯一需要的是带有 post-id 的隐藏输入。
因此,这是一个关于表单中多个按钮的优雅解决方案(没有 JavaScript)的问题,用于提交不同的输入字段集(例如多个表单可能允许)并将UI 从用户角度排列为单个实体(“表单”) .
来自该讨论的评论:几乎不可能将元素的屏幕位置与其在文档中的位置完全分开。
编辑:我发现有趣的笔记http://anderwald.info/internet/nesting-form-tags-in-xhtml/ - (X)HTML 不允许嵌套表单,如“表单 > 表单”,但允许“表单 > 字段集 > 表单” ”,W3 验证器说它是有效的,但是浏览器存在这种嵌套的错误。
就 HTML5(规范草案)而言,情况并不像 David Dorward 所说的那么明确。事实是,如果不添加在标记中分隔表单的新方法,就无法以向后兼容的方式在 text/html 序列化中指定嵌套表单。
另一方面,在 application/xhtml+xml 序列化中,不仅可以标记嵌套表单,而且 HTML5 也有一定的长度(http://dev.w3.org/html5/spec/forms.html#form- owner)来指定在这种情况下应该发生什么。此外,对最新版本的 FireFox、Opera、Chrome 和 Safari 以及 IE9 平台预览版的快速测试表明,它们都执行 HTML5 指定的操作。
因此,它在 HTML5 内容模型中可能是有效的,但事实并非如此。决定什么是有效的、什么是无效的很大程度上取决于用例。到目前为止,还没有人向 WHATWG 或 W3C HTML WG 提供足够引人注目的用例,使嵌套表单成为有效 HTML5 的一部分。