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();
});
我发现
我找不到这方面的文档。
首先在提交挂钩中将自定义错误设置为 $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();
});