在 Javascript 中获取重力表 AJAX 确认消息而不是输出
Getting Gravity Forms AJAX Confirmation Message in Javascript Instead of Outputting
我在 Wordpress 中设置了 Gravity Forms 插件,并且在我的表单上使用 AJAX 功能。我已将其配置为 return 提交时的确认消息,但我想获取 Javascript 中确认消息中包含的值,而不是让它自动输出到表单上。
我不确定如何在输出之前获取确认消息,或者如何防止它被输出。
看起来 'gform_post_render' javascript 挂钩在消息输出之前被调用,但我不确定将确认消息值定位到哪里或阻止它输出。
有没有办法覆盖确认消息输出?或者有没有更好的方法通过 AJAX 将重力形式设置为 return 一个动态值,然后我可以确定下一步该做什么?
谢谢!
我最终得到了 Gravity Forms 支持团队的帮助,他们建议我不要使用包含的 AJAX 功能,而是查看 Gravity Forms Web API,特别是 /表单/{ID}/提交端点:
https://www.gravityhelp.com/documentation/article/web-api/#form-submissions
我的解决方案最终看起来像这样:
$('form').submit(function(e) {
e.preventDefault();
// Get Form ID for submission URL //
var formID = $(this).attr('id');
formID = formID.replace('gform_', '');
var formURL = '/gravityformsapi/forms/'+formID+'/submissions';
// Get Form Input Data and Format JSON for Endpoint //
var formArray = $(this).serializeArray();
var formData = [];
$.each(formArray, function(index, data) {
var name = data['name'];
var value = data['value'];
formData[name] = value;
});
formData = $.extend({}, formData);
var data = { input_values : formData };
// AJAX to Submit Form //
$.ajax({
url: formURL,
method: 'POST',
data: JSON.stringify(data)
}).done(function (data, textStatus, xhr) {
// This is the HTML that is output as a part of the Confirmation Message //
console.log(data.response.confirmation_message);
});
});
这允许您通过 AJAX 提交表单,但随后您可以选择如何处理 data.response.confirmation_message 变量中的响应。
我在 Wordpress 中设置了 Gravity Forms 插件,并且在我的表单上使用 AJAX 功能。我已将其配置为 return 提交时的确认消息,但我想获取 Javascript 中确认消息中包含的值,而不是让它自动输出到表单上。
我不确定如何在输出之前获取确认消息,或者如何防止它被输出。
看起来 'gform_post_render' javascript 挂钩在消息输出之前被调用,但我不确定将确认消息值定位到哪里或阻止它输出。
有没有办法覆盖确认消息输出?或者有没有更好的方法通过 AJAX 将重力形式设置为 return 一个动态值,然后我可以确定下一步该做什么?
谢谢!
我最终得到了 Gravity Forms 支持团队的帮助,他们建议我不要使用包含的 AJAX 功能,而是查看 Gravity Forms Web API,特别是 /表单/{ID}/提交端点:
https://www.gravityhelp.com/documentation/article/web-api/#form-submissions
我的解决方案最终看起来像这样:
$('form').submit(function(e) {
e.preventDefault();
// Get Form ID for submission URL //
var formID = $(this).attr('id');
formID = formID.replace('gform_', '');
var formURL = '/gravityformsapi/forms/'+formID+'/submissions';
// Get Form Input Data and Format JSON for Endpoint //
var formArray = $(this).serializeArray();
var formData = [];
$.each(formArray, function(index, data) {
var name = data['name'];
var value = data['value'];
formData[name] = value;
});
formData = $.extend({}, formData);
var data = { input_values : formData };
// AJAX to Submit Form //
$.ajax({
url: formURL,
method: 'POST',
data: JSON.stringify(data)
}).done(function (data, textStatus, xhr) {
// This is the HTML that is output as a part of the Confirmation Message //
console.log(data.response.confirmation_message);
});
});
这允许您通过 AJAX 提交表单,但随后您可以选择如何处理 data.response.confirmation_message 变量中的响应。