当前位置:  开发笔记 > 编程语言 > 正文

你如何克服html表单嵌套限制?

如何解决《你如何克服html表单嵌套限制?》经验,为你挑选了5个好方法。

我知道xhtml不支持嵌套的表单标签,我已经
在stackoverflow中读到了关于这个主题的其他答案,但我仍然没有想出一个优雅的问题解决方案.

有人说你不需要它,他们想不到这种情况是需要的.好吧,我个人无法想到一个我不需要它的场景.

让我们看一个非常简单的例子:

您正在创建一个博客应用程序,并且您有一个表单,其中包含一些字段,用于创建新帖子和工具栏,其中包含"保存","删除","取消"等"操作".

我们的目标是以不需要javascript的方式编写表单,只需要简单的旧HTML表单和提交按钮.

由于动作URL是在Form标签中定义的,而不是在每个单独的提交按钮中定义,我们唯一的选择是发布到通用URL,然后启动"if ... then ... else"来确定按钮的名称提交.不是很优雅,但我们唯一的选择,因为我们不想依赖javascript.

唯一的问题是,按"删除",将提交服务器上的所有表单字段,即使此操作所需的唯一内容是带有post-id的隐藏输入.在这个小例子中并没有什么大不了的,但我的表格中有数百个(可以这么说)我的LOB应用程序中的字段和标签(由于要求)必须一次性提交所有内容,无论如何这看起来效率很低而浪费.如果支持表单嵌套,我至少可以在其自己的表单中包含"删除"提交按钮,只包含post-id字段.

您可以说"只需实施"删除"作为链接而不是提交".这在许多层面都是错误的,但最重要的是因为像这里的"删除"这样的副作用动作永远不应该是GET请求.

所以我的问题(特别是那些说他们不需要形成嵌套的人)是你做什么的?是否有任何优雅的解决方案,我缺少或底线真的"要么需要javascript或提交一切"?



1> shovavnik..:

我知道这是一个老问题,但HTML5提供了几个新选项.

第一种是将表单与标记中的工具栏分开,为删除操作添加另一种形式,并使用该form属性将工具栏中的按钮与其各自的表单相关联.

此选项非常灵活,但原始帖子还提到可能需要使用单个表单执行不同的操作.HTML5再次受到拯救.您可以formaction在提交按钮上使用该属性,因此同一表单中的不同按钮可以提交到不同的URL.这个例子只是将一个克隆方法添加到表单外部的工具栏,但它在表单中嵌套的方式相同.

http://www.whatwg.org/specs/web-apps/current-work/#attributes-for-form-submission

这些新功能的优点是,它们在没有JavaScript的情况下以声明方式完成所有这些操作.缺点是旧浏览器不支持它们,因此您必须为旧版浏览器进行一些填充.


你的观点毫无疑问是有争议的,与OP的问题无关.OP在不使用JavaScript的情况下询问了表单嵌套限制,答案提供了解决方案.无论你使用``还是`
推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有