我正在使用Ajax帖子将表单数据提交到服务器,进行验证,然后根据数据是否有效并可以存储来返回消息。我在ajax帖子中的成功功能并没有运行。这是ajax帖子和成功消息的显示:
jQuery.ajax({
type:"post",
dataType:"json",
url: myAjax.ajaxurl,
data: {action: 'submit_data', info: info},
success: function(data) {
successmessage = 'Data was succesfully captured';
}
});
$("label#successmessage").text(successmessage);
$(":input").val('');
return false;
虽然标签上没有显示任何消息。我尝试将successmessage变量设置为代码中的设定值并显示正常,因此我的成功函数一定有问题,我只是看不清楚什么?我也试过像这样设置错误回调:
error: function(data) {
successmessage = 'Error';
},
但仍然没有显示任何消息。
答案 0 :(得分:21)
因为Ajax是异步的,所以当服务器应答客户端时,稍后会调用success
或error
函数。因此,只需根据结果将部件移动到您的成功函数中:
jQuery.ajax({
type:"post",
dataType:"json",
url: myAjax.ajaxurl,
data: {action: 'submit_data', info: info},
success: function(data) {
successmessage = 'Data was succesfully captured';
$("label#successmessage").text(successmessage);
},
error: function(data) {
successmessage = 'Error';
$("label#successmessage").text(successmessage);
},
});
$(":input").val('');
return false;
答案 1 :(得分:1)
上面给出的答案无法解决我的问题。所以我将async更改为false以获取警报消息。
extract()