我在Wordpress中设置了Gravity Forms插件,我在表单上使用了AJAX功能。我已将其配置为在提交时返回确认消息,但我想在Javascript中获取确认消息中包含的值,而不是将其自动输出到表单上。
我不确定如何在输出之前获取确认消息,或者如何防止输出确认消息。
看起来在输出消息之前就调用了'gform_post_render'javascript钩子,但我不确定在哪里定位确认消息值或阻止它输出。
有没有办法覆盖确认消息输出?或者是否有更好的方法来设置Gravity Forms以通过AJAX返回动态值,然后我可以确定下一步该做什么?
谢谢!
答案 0 :(得分:3)
我最终获得了Gravity Forms支持团队的帮助,他们建议不要使用附带的AJAX功能,而是查看Gravity Forms Web API,特别是/ forms / {ID} /提交端点:< / p>
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变量中选择如何处理响应。