在 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 变量中的响应。