Ninja Forms - 拒绝带有一般错误的表单提交,而不是特定于字段的错误

Ninja Forms - reject form submission with a generic error, not a field-specific error

我发现 关于如何 return 表单提交时的自定义验证错误。这适用于个别字段错误,但我如何 return 不属于特定字段的一般表单错误?我想要 return 出现在提交按钮上方的自定义表单提交错误。我想要 return 的错误与特定字段没有任何关系,因此我想发回仅显示在表单底部的一般错误消息。

我找不到这方面的文档。

首先在提交挂钩中将自定义错误设置为 $form_data['errors']

$form_data['errors'] = ["My Custom Error Message"];

现在您需要使用前端代码显示此错误。 在前端钩入 "submit:response"

var mySubmitController = Marionette.Object.extend({
  initialize: function () {
    this.listenTo(
      Backbone.Radio.channel("forms"),
      "submit:response",
      this.actionSubmit
    );
  },

  actionSubmit: function (response) {
    const errorNotice = document.querySelector(".nf-before-form nf-section");
    errorNotice.innerHTML = "";

    if (!response.errors || !response.errors.length) {
      return;
    }

    const errors = response.errors;

    errorNotice.insertAdjacentHTML(
      "afterbegin",
      "<strong>Your form submission encountered the following errors:</strong>"
    );

    errorNotice.insertAdjacentHTML("beforeend", "<ul>");
    errors.forEach((error) => {
      errorNotice.insertAdjacentHTML("beforeend", `<li>${error}</li>`);
    });
    errorNotice.insertAdjacentHTML("beforeend", "</ul>");

    errorNotice.scrollIntoView({
      behavior: "smooth"
    });
  }
});

jQuery(document).ready(function ($) {
  new mySubmitController();
});