Ajax 表单提交后回调 Drupal 8 表单

Callback after Ajax form submit by Drupal 8 form

我有一个 Drupal 8 表单(ID:regform),我必须在表单 AJAX 提交后做一些 JS 触发器。

例如表单包含选择计划字段,表单提交后,我必须在同一页面的另一个块中显示一些计算价格,所以我试图在 Ajax 提交后选择一个回调函数。我必须做什么?

希望您可以使用下面的代码来解决您的问题。您可以将此代码段添加到位于自定义主题或模块中的 javascript 文件中。

(function ($, Drupal) {
  Drupal.behaviors.custom = {
    attach: function (context, settings) {
      $(document).ajaxComplete(function (event, xhr, settings) {
        if (settings.data && settings.data.indexOf("form_id=regform") != -1) {
          //your code here
        }
      });
    }
  }
})(jQuery, Drupal);

这在 Drupal 9.2.10 中对我有用:(2021 年 12 月)

jQuery(document).ajaxComplete(function(event, xhr, settings) {
  if (settings.data.indexOf( "form_id=modal_test_form") != -1) {
    console.log('Hello!');
  }
});