【问题标题】:Drupal 7 Multistep forms - Remove save & preview button until last stepDrupal 7 Multistep forms - 删除保存和预览按钮直到最后一步
【发布时间】:2015-07-22 20:24:28
【问题描述】:

我在 Drupal 中制作了一个多步骤/页面表单(字段类型是多页组,嵌套了多页)。

表格共6页,每页都有必填信息。问题是,Drupal 在表单的每一页底部都放置了一个“保存”和“预览”按钮。确实,在填写完所有必填字段之前,您无法预览或保存表单。因此,当用户浏览表单时,他们在中途点击“保存”或“预览”时,会出现大量错误。

有什么方法可以删除“保存”和“预览”按钮,直到它们位于最后一页(即仅第 6 页)?

谢谢。

编辑:顺便说一句,我正在使用字段组来构建我的表单。

【问题讨论】:

  • 另外,我知道有一个模块“Multistep”,但它在 D6 中工作,对于 D7 来说不够健壮。补丁使表单在您每次点击下一个时都会“提交”,因此发送过早的电子邮件并比预期更早地发布表单。
  • 我也尝试了带有最新补丁的表单 ajaxify 模块 (drupal.org/project/field_group_ajaxified_multipage),但它似乎仍然有很多错误(ajax 错误发生在下一个和上一个,并且不验证非文本字段成功...)

标签: drupal-7


【解决方案1】:

我没有发现任何模块可以做到这一点,反正也不完整。

我们最终使用 CSS 完全删除了预览按钮,并安装了一个模块 (Required For Publishing),允许您指定“发布所需的字段”与保存草稿所需的字段。现在只有 3 个字段可以保存草稿以备后用,但发布事件/表单需要 20 多个字段。

我们在 multipage.js 表单中使用了 javascript 来验证每个步骤,因此如果不填写每个页面上的实际必填字段,他们就无法继续。

【讨论】:

    【解决方案2】:

    您必须制作自己的模块并使用 hook_form_alter .. https://api.drupal.org/api/drupal/modules!system!system.api.php/function/hook_form_alter/7 .. 并检查您当前处于哪一步 .. 如果您不在最后一步,请移除按钮 .. 并享受。

    类似 .. unset($form['actions']['preview']);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-18
      • 2014-07-18
      • 2017-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-04
      • 2021-01-31
      相关资源
      最近更新 更多