jquery中全局布尔值的问题

时间:2015-04-14 09:28:17

标签: jquery boolean

我有一个我不明白的问题。 correctLogin是一个控制正确/不正确登录的布尔值。初始值为false,recoverUser返回一个值。如果此值不为空,则correctLogin为真。

但是,correctLogin不会改变。这总是错误的。

注释警告如果正确则显示为true,但在recordLogin中,correctLogin再次为false。

我的代码:

$(document).ready(function(){
    $("#loginButton").click(function(){
    var correctLogin = false;
    $.ajax({
        type: "POST",
        url: "recoverUser.php",
        data: "nameUser="+$("#nameUser").val()+"&passwordUser="+$("#passwordUser").val(),
        success: function(groupUser){
            if(groupUser=="") {
                $("#add_err").html("Incorrect Data");
            } else {
                $("#add_err").html("Correct Data...")               
                sessionStorage.setItem('sesionGrupo',groupUser);
                sessionStorage.setItem('sessionUser',$("#nameUser").val());
                sessionStorage.setItem('sessionPassword',$("#passwordUser").val());
                correcLogin = true;
                // alert(correctLogin);
            }
        },
    }); 
    $.ajax({
        type: "POST",
        url: "recordLogin.php",
        data: "nameUser="+$("#nameUser").val()+"&statusLogin="+correctLogin,
        success: function(){
        },          
    });         
});

2 个答案:

答案 0 :(得分:2)

由于ajax是异步的,因此不会等待成功事件发生。因此,当您进行下一个请求时,该变量的值将是默认值。

更改代码,将第二个ajax调用移动到第一个成功事件。

$("#loginButton").click(function() {
    var correctLogin = false;
    $.ajax({
        type: "POST",
        url: "recoverUser.php",
        data: "nameUser=" + $("#nameUser").val() + "&passwordUser=" + $("#passwordUser").val(),
        success: function(groupUser) {
            if (groupUser == "") {
                $("#add_err").html("Incorrect Data");
            } else {
                $("#add_err").html("Correct Data...")
                sessionStorage.setItem('sesionGrupo', groupUser);
                sessionStorage.setItem('sessionUser', $("#nameUser").val());
                sessionStorage.setItem('sessionPassword', $("#passwordUser").val());
                correcLogin = true;
                // alert(correctLogin);
            }
            $.ajax({
                type: "POST",
                url: "recordLogin.php",
                data: "nameUser=" + $("#nameUser").val() + "&statusLogin=" + correctLogin,
                success: function() {},
            });
        },
    });

});

答案 1 :(得分:1)

有效!谢谢!这是一个有用的信息。链接jquery ajax在未来的功能中帮助我。