Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取Javascript中的AJAX确认消息,而不是输出_Javascript_Ajax_Wordpress_Gravity Forms Plugin - Fatal编程技术网

获取Javascript中的AJAX确认消息,而不是输出

获取Javascript中的AJAX确认消息,而不是输出,javascript,ajax,wordpress,gravity-forms-plugin,Javascript,Ajax,Wordpress,Gravity Forms Plugin,我在Wordpress中设置了Gravity表单插件,我在表单上使用AJAX功能。我已将其配置为在提交时返回确认消息,但我希望在Javascript中获取确认消息中包含的值,而不是将其自动输出到表单中 我不知道如何在确认消息输出之前获取它,或者如何防止它被输出 看起来“gform_post_render”javascript钩子是在消息输出之前调用的,但我不确定确认消息值的目标位置或阻止其输出 是否有方法覆盖确认消息输出?或者有没有更好的方法来设置重力表单,通过AJAX返回动态值,这样我就可以确

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

我不知道如何在确认消息输出之前获取它,或者如何防止它被输出

看起来“gform_post_render”javascript钩子是在消息输出之前调用的,但我不确定确认消息值的目标位置或阻止其输出

是否有方法覆盖确认消息输出?或者有没有更好的方法来设置重力表单,通过AJAX返回动态值,这样我就可以确定下一步要做什么


谢谢

我最终得到了Gravity表单支持团队的帮助,他们建议我研究Gravity表单Web API,特别是/Forms/{ID}/submissions端点,而不是使用附带的AJAX功能:

我的解决方案最终看起来像这样:

$('form')。提交(函数(e){
e、 预防默认值();
//获取提交URL的表单ID//
var formID=$(this.attr('id');
formID=formID.replace('gform_','');
var formURL='/gravityformsapi/forms/'+formID+'/submissions';
//获取表单输入数据并格式化端点的JSON//
var formArray=$(this.serializeArray();
var formData=[];
$。每个(格式、功能(索引、数据){
变量名称=数据['name'];
var值=数据[‘值’];
formData[名称]=值;
});
formData=$.extend({},formData);
var data={input_值:formData};
//AJAX提交表单//
$.ajax({
url:formURL,
方法:“POST”,
数据:JSON.stringify(数据)
}).done(函数(数据、文本状态、xhr){
//这是作为确认消息的一部分输出的HTML//
控制台日志(数据、响应、确认消息);
});
});

这允许您通过AJAX提交表单,但是您可以在data.response.confirmation\u message变量中选择如何处理响应。

我最终得到了Gravity表单支持团队的帮助,他们建议我查看Gravity表单Web API,而不是使用附带的AJAX功能,特别是/forms/{ID}/submissions端点:

我的解决方案最终看起来像这样:

$('form')。提交(函数(e){
e、 预防默认值();
//获取提交URL的表单ID//
var formID=$(this.attr('id');
formID=formID.replace('gform_','');
var formURL='/gravityformsapi/forms/'+formID+'/submissions';
//获取表单输入数据并格式化端点的JSON//
var formArray=$(this.serializeArray();
var formData=[];
$。每个(格式、功能(索引、数据){
变量名称=数据['name'];
var值=数据[‘值’];
formData[名称]=值;
});
formData=$.extend({},formData);
var data={input_值:formData};
//AJAX提交表单//
$.ajax({
url:formURL,
方法:“POST”,
数据:JSON.stringify(数据)
}).done(函数(数据、文本状态、xhr){
//这是作为确认消息的一部分输出的HTML//
控制台日志(数据、响应、确认消息);
});
});

这允许您通过AJAX提交表单,但是您可以在data.response.confirmation\u message变量中选择如何处理响应。

这在较新的gravityforms插件中似乎不起作用。我只需要知道表单是否通过javascript成功提交。我在引导模式中使用Gravity表单,但在提交时确实需要将表单字段的所有值都拉入页面中,并且没有错误。done函数在此处产生错误。发布位置:gravityformsapi/forms/8/submissions 0(),这在较新的gravityforms插件中似乎不起作用。我只需要知道表单是否通过javascript成功提交。我在引导模式中使用Gravity表单,但在提交时确实需要将表单字段的所有值都拉入页面中,并且没有错误。done函数在此处产生错误。发布位置:gravityformsapi/forms/8/0()