【问题标题】:How to build a multistep Drupal 7 form with a Bootstrap popup?如何使用 Bootstrap 弹出窗口构建多步骤 Drupal 7 表单?
【发布时间】:2016-06-03 16:08:22
【问题描述】:
我有一个多步骤 Drupal 7 表单。我想在 Bootstrap 弹出窗口中显示它。
此表单在普通页面上运行良好,但是当我将其放入 Bootstrap 弹出窗口时,它会在按下第一个按钮时关闭弹出窗口。
我使用 drupal_render(drupal_get_form('MYFORMNAME_form')) 将表单放入弹出正文中。
如何使这个多步骤表单在弹出窗口中正常工作?
【问题讨论】:
标签:
forms
twitter-bootstrap
drupal
drupal-7
【解决方案1】:
当您说引导弹出窗口时,您是指模态窗口 (http://getbootstrap.com/javascript/#modals) 吗?引导程序中的模态在页面主体内定义,并根据需要隐藏/显示。如果你想让一个作为自己的窗口,你需要一个 iframe,因为提交表单不会触发你设置的任何机制来显示模态对话框。
另一种选择是使用代码重新显示模式,无论表单处于何种阶段,每次页面加载(下一个按钮等)
最后一个选项是通过 AJAX 完成所有表单导航。然后,您无需将表单放入 iframe 中,也无需包含代码以在每次提交表单时重新显示模式,因为页面永远不会刷新。
恕我直言,iframe 是最简单的,如果您对 iframe 没有任何疑虑,它也是一个不错的选择。您只需将表单放在单独的页面中并将其包含在 iframe 中。一些主题化工作将使您能够关闭正常的页面镶边,这将使您的模态看起来像您网站的微型版本——您可能不希望您的页眉、导航栏、页脚等在模态中。
【解决方案2】:
您可以使用Popup forms 模块。它声称:
适用于多步骤表单。只是不要将 [the] “Next” button id 添加到
[the] 'close_buttons' 数组以保持 [the] 弹出窗口打开 [在步骤之间导航时]。
此解决方案不使用 Boostrap 模态(“Bootstrap 弹出窗口”),而是使用 jQuery UI 对话框。使用此模块需要一些自定义编码。项目页面提供了示例代码。