1

これが私のコードです。「フラグ」を取得したいのですが、「フラグ」は常に「false」です。"flag=true" までプログラムを実行しても、"flag" は返されると "false" になります。$.ajax() から実際の値を取得するにはどうすればよいですか? 私を助けてください。ありがとう

function checkUserName() {
var name = document.getElementById("userName").value;
var namemsg = document.getElementById("userNameMsg");
var flag=false;
if (name == "") {
    flag=false;
} else {
    $.ajax({
        type : "POST",
        url : "/vclub/verify/checkUserName.do",
        dataType : "json",
        data : "userName=" + name,
        success : function(data) {
            if (data == true) {
                flag=true;
            } else {
                flag=false;
            }
        }
    });
}
alert(flag);
return flag;

}

4

3 に答える 3

0

functionの属性に割り当てた関数はコールバックflagであるため、AJAX リクエストが正常に終了すると の値が変更されます。実際、コード行はコールバックの実行前に実行されます (の値がまだ変更されていない場合)。success$.ajaxalert(flag);successflag

コールバックに移動alert(flag);すると、そのsuccess値が変更されていることがわかります。

callback();行も関数に移動する必要があると思います。

于 2013-03-30T08:12:32.423 に答える