.done不是一个功能

时间:2012-05-02 15:29:32

标签: javascript jquery

我还有另一个问题。我在FireFox中遇到错误而且我不知道我的错是什么。我总是这样做,我从来没有错过。我已经检查了大/小写错误,但我找不到任何东西。

由于

  

$ .ajax({type:&#34; POST&#34;,url:&#34; ajax / check_username.php&#34;,data:{username:username}})。done不是函数< / p>

<script type="text/javascript">
$(document).ready(function(){
    $("#username").keyup(function(){
        var username = $("#username").val();
        $(".usernameFeedback").fadeIn("fast");

        $.ajax({
            type: "POST",
            url: "ajax/check_username.php",
            data: { username: username }
        }).done(function( msg ) {
            $("#loadingImage").hide();
            if(msg.status != "error")
                {
                    if(msg.available == "yes")
                    {
                        $(".usernameFeedback span").text(msg.message);
                        $(".usernameFeedback span").removeClass("notok");
                        $(".usernameFeedback span").addClass("ok");
                    }
                    else
                    {
                        $(".usernameFeedback span").text(msg.message);
                        $(".usernameFeedback span").addClass("notok");
                    }
                }
        });
        return(false);
    })
});
</script>

1 个答案:

答案 0 :(得分:17)

可能你的jQuery版本太旧了。您至少需要jQuery 1.5 for jqXHR对象来实现您正在使用的 Promise 接口。

如果由于某种原因无法升级,只需使用success选项:

$.ajax({
    type: "POST",
    url: "ajax/check_username.php",
    data: { username: username },
    success: function(msg) {

    }
});