我有这段代码,我想指定validateUser函数是true还是false。我怎么能这样做,因为在代码中.post()
已经有了一个函数?
这是代码
function validateUser() {
var user = $("#username").val();
$.post('usercheck.php', $("#form").serialize(), function (data) {
var usercheck = data;
if (usercheck != "") {
$("#div").html("Username already exists");
return false;
} else {
$("#div").html("ok");
return true;
}
});
}
答案 0 :(得分:1)
问题是,$.post
是异步的。因此,您需要将回调传递给validateUser
函数。
function validateUser(callback) {
var user = $("#username").val();
$.post('usercheck.php', $("#form").serialize(), function(data) {
var usercheck = data;
if(usercheck != "") {
$("#div").html("Username already exists");
callback(false);
}
else {
$("#div").html("ok");
callback(true);
}
});
validateUser(function(valid) {
if (valid) {
alert('The user is valid');
}
else {
alert('The user is not valid');
}
});
答案 1 :(得分:0)
由于jQuery.post异步运行,因此无法返回false。解决方法是强制帖子同步运行,但我强烈建议你不要这样做。