为什么 WHATWG 不允许 HTML 4 和 HTML5 中的嵌套表单?

2024-01-09

为什么 WHATWG 不允许 HTML 4 和 HTML5 中的嵌套表单?

EDIT: 问题最初描述于如何克服 HTML 表单嵌套限制? https://stackoverflow.com/questions/597596/how-do-you-overcome-the-html-form-nesting-limitation

简而言之,作者说:您正在制作一个博客应用程序,并且有一个表单,其中包含一些用于创建新帖子的字段和一个带有“操作”的工具栏,例如"Save", "Delete", “取消”... 唯一的问题是,按“删除”将提交服务器上的所有表单字段,即使此操作唯一需要的是带有 post-id 的隐藏输入。

因此,这是一个关于表单中要提交的多个按钮的优雅解决方案(没有 JavaScript)的问题不同组的输入字段(就像几种形式可以允许的那样)and从用户角度将 UI 排列成单个实体(“表单”)。

该讨论的评论:几乎不可能将元素的屏幕位置与其在文档中的位置完全分开。

EDIT: 我发现有趣的注释https://web.archive.org/web/20170420110433/http://anderwald.info/internet/nesting-form-tags-in-xhtml/ https://web.archive.org/web/20170420110433/http://anderwald.info/internet/nesting-form-tags-in-xhtml/- (X)HTML 不允许嵌套表单,如“form > form”,但允许“form > fieldset > form”,W3 验证器说它是有效的,但浏览器存在此类嵌套的错误。


就 HTML5(规范草案)而言,情况并不像 David Dorward 所说的那么明确。事实是,如果不添加在标记中分隔表单的新方法,就无法以向后兼容的方式在 text/html 序列化中指定嵌套表单。

另一方面,在 application/xhtml+xml 序列化中,不仅可以标记嵌套表单,而且 HTML5 也达到了一定的长度(http://dev.w3.org/html5/spec/forms.html#form-owner http://dev.w3.org/html5/spec/forms.html#form-owner) 来指定在这种情况下应该发生什么。此外,对最新版本的 FireFox、Opera、Chrome 和 Safari 以及 IE9 平台预览版的快速测试表明,它们都执行 HTML5 指定的操作。

因此,它在 HTML5 内容模型中可能是有效的,但事实并非如此。决定什么是有效的、什么是无效的很大程度上取决于用例。到目前为止,还没有人向 WHATWG 或 W3C HTML WG 提供足够引人注目的用例,使嵌套表单成为有效 HTML5 的一部分。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 WHATWG 不允许 HTML 4 和 HTML5 中的嵌套表单? 的相关文章

随机推荐