为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

喵喔喔 2019-07-29 16:06:07
你如何克服HTML表单嵌套限制?我知道XHTML不支持嵌套的表单标签,我已经在Stack Overflow上阅读了关于这个主题的其他答案,但我仍然没有想出一个优雅的问题解决方案。有人说你不需要它,他们想不到这种情况是需要的。嗯,我个人不认为我一个场景都没有必要了。让我们看一个非常简单的例子:您正在创建一个博客应用程序,并且您有一个表单,其中包含一些字段,用于创建新帖子和工具栏,其中包含“保存”,“删除”,“取消”等“操作”。<form  action="/post/dispatch/too_bad_the_action_url_is_in_the_form_tag_even_though_conceptually_every_submit_button_inside_it_may_need_to_post_to_a_diffent_distinct_url"method="post">     <input type="text" name="foo" /> <!-- several of those here -->     <div id="toolbar">         <input type="submit" name="save" value="Save" />         <input type="submit" name="delete" value="Delete" />         <a href="/home/index">Cancel</a>     </div></form>我们的目标是以不需要JavaScript的方式编写表单,只需要简单的旧HTML表单和提交按钮。由于操作URL是在Form标签中定义的,而不是在每个单独的提交按钮中定义,因此我们唯一的选择是发布到通用URL,然后启动“if ... then ... else”以确定按钮的名称提交。不是很优雅,但是我们唯一的选择,因为我们不想依赖JavaScript。唯一的问题是,按“删除”,将提交服务器上的所有表单字段,即使此操作所需的唯一内容是带有post-id的隐藏输入。在这个小例子中没什么大不了的,但是我的LOB应用程序中有数百个(可以这么说)字段和标签的表单(由于要求)必须一次性提交所有内容,无论如何这看起来效率很低而浪费。如果支持表单嵌套,我至少可以在其自己的表单中包含“删除”提交按钮,只包含post-id字段。您可以说“只需实施”删除“作为链接而不是提交”。这在许多层面都是错误的,但最重要的是因为像这里的“删除”这样的副作用动作永远不应该是GET请求。所以我的问题(特别是那些说他们不需要形式嵌套的人)是你做什么的?是否有任何优雅的解决方案,我缺少或底线真的“需要JavaScript或提交一切”?
查看完整描述

3 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

你可以在页面上并排显示表单,但不能嵌套。然后使用CSS使所有按钮排列漂亮?

<form method="post" action="delete_processing_page">
   <input type="hidden" name="id" value="foo" />
   <input type="submit" value="delete" class="css_makes_me_pretty" /></form><form method="post" action="add_edit_processing_page">
   <input type="text" name="foo1"  />
   <input type="text" name="foo2"  />
   <input type="text" name="foo3"  />
   ...   <input type="submit" value="post/edit" class="css_makes_me_pretty" /></form>


查看完整回答
反对 回复 2019-07-29
  • 3 回答
  • 0 关注
  • 545 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信