问题描述
首先,我已阅读本主题,,,我不知道如何使它工作./p>
First of all I have read this topics jQuery AJAX function return true or false returning only false while its all good, What to return for jQuery's ajax data param in callback function?, How return true or false function of data response ajax? and I can't figure out how to put this working.
$("#btn_go").on('click', function(){
if(validateUserDetails() == false){
return;
}
});
因此,函数validateUserDetails
具有以下内容:
So, the function validateUserDetails
has the following:
function validateUserDetails(){
var bool = false;
$.ajax({
url: 'response.php?type=validateUserDetails',
type: 'POST',
dataType: 'json',
data: {name: $("#checkout_name").val(), email: $("#checkout_email").val(), "country": $("#checkout_country").val(),
"city": $("#checkout_city").val()},
success: function(data){
console.log(data); // this is currently returning FALSE
// Which is totally correct!
if(data == true){ bool = true; }
return trueOrFalse(bool);
}
});
}
function trueOrFalse(bool){
return bool;
}
但是这不起作用,因为如果我输出该函数,则会得到未定义",这意味着该函数未在重新调整正确的值. console.log(validateUserDetails()); // = undefined
But this is not working because if I output the function I get "undefined", which means that the function is not retuning the correct value. console.log(validateUserDetails()); // = undefined
我在做什么?
推荐答案
ajax
请求为asynchronous
.不要使用sync: true
选项,这不是一个好主意.您可以做的是使用ajax
返回的promise
,因此:
ajax
request is asynchronous
. Don't use the sync: true
option, it's not really a good idea.What you can do is to use the promise
that the ajax
returns, so:
function validateUserDetails(){
return $.ajax({
url: 'response.php?type=validateUserDetails',
type: 'POST',
async: false,
dataType: 'json',
data: {name: $("#checkout_name").val(), email: $("#checkout_email").val(), "country": $("#checkout_country").val(),
"city": $("#checkout_city").val()},
success: function(data){
console.log(data); // this is currently returning FALSE
}
});
}
$("#btn_go").on('click', function(){
validateUserDetails().done(function(data){
if(data == "someValue")
return "whatever you want";
});
});
这篇关于ajax return true/false-我已经实现了一个回调的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!