在Javascript中获取Gravity表单AJAX确认消息而不是输出

时间:2015-09-23 14:07:28

标签: javascript ajax wordpress gravity-forms-plugin

我在Wordpress中设置了Gravity Forms插件,我在表单上使用了AJAX功能。我已将其配置为在提交时返回确认消息,但我想在Javascript中获取确认消息中包含的值,而不是将其自动输出到表单上。

我不确定如何在输出之前获取确认消息,或者如何防止输出确认消息。

看起来在输出消息之前就调用了'gform_post_render'javascript钩子,但我不确定在哪里定位确​​认消息值或阻止它输出。

有没有办法覆盖确认消息输出?或者是否有更好的方法来设置Gravity Forms以通过AJAX返回动态值,然后我可以确定下一步该做什么?

谢谢!

1 个答案:

答案 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变量中选择如何处理响应。