jquery函数中的true或false

时间:2014-02-10 11:10:13

标签: jquery function

我有这段代码,我想指定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;
        }

    });
}

2 个答案:

答案 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。解决方法是强制帖子同步运行,但我强烈建议你不要这样做。