我正在使用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'; },
但是仍然没有消息显示。
这是因为Ajax是异步的,所以当服务器应答客户端时,success或error函数将在以后被调用。因此,只需根据结果将零件移动到成功函数中,如下所示:
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;