我有一个调用JQuery.get()的JavaScript方法,我想从它返回值到被调用函数..以下是代码:
function CheckExistance(userName) {
$.get(
"JQueryPage.aspx", { name: userName },
function(result) {
if (result == "1") {
value = true;
}
else if (result == "0") {
value = false;
}
else if (result == "error") {
value = false;
}
}
);
return value;
}
Run Code Online (Sandbox Code Playgroud)
我想return value;返回get()函数中设置的值...我知道这get()是异步操作,我想要一个解决方案吗?
你不能将值"返回"到被调用的函数中; 因为你已经意识到,AJAX调用是异步的.相反,您需要有效地延迟执行AJAX调用之后的代码; 将此代码放在callback函数中.
现在发生的是,这个代码在AJAX请求完成后执行,并且value可用.
function CheckExistance(userName, callback) {
$.get(
"JQueryPage.aspx", { name: userName },
function(result) {
var value = false;
if (result == "1") {
value = true;
}
callback(value);
}
);
}
Run Code Online (Sandbox Code Playgroud)
然后您的功能可能在以前的位置:
function validateUserName() {
var input = $('someField').val();
var isUnique = CheckExistance(input);
if (isUnique) {
// whatever
} else {
alert("This username is already taken");
};
};
Run Code Online (Sandbox Code Playgroud)
现在应该是:
function validateUserName() {
var input = $('someField').val();
CheckExistance(input, function (isUnique) {
if (isUnique) {
// whatever
} else {
alert("This username is already taken");
};
});
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13999 次 |
| 最近记录: |