变量在ajax请求后没有实现

时间:2013-04-11 08:22:14

标签: jquery variables validation

我有以下代码:

$( document ).ready(function() {
    $("#btnRegister").click(function() {
        var errorVal=false;
        var numCorreo=0;
        var numAlias=0;

        $.ajax({
            url : "./php/auxChkUser.php",
            type : "POST",
            data : {alias : $("#txtRegisterAlias").val()},
            success: function(data){
                alert("usrdata: " + data);
                if(data>0) {
                    numAlias=data;
                    alert("<?=$lng->frmRegisterErrorUser; ?>");
                    errorVal=true;
                }
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) { 
                alert("Status: " + textStatus); alert("Error: " + errorThrown); 
                errorVal=true;
            } 
        });

        $.ajax({
            url : "./php/auxChkMail.php",
            type : "POST",
            data : {correo : $("#txtRegisterCorreo").val()},
            success: function(data){
                alert("maildata: " + data);
                if(data>0) {
                    numCorreo=data;
                    alert("<?=$lng->frmRegisterErrorCorreoExiste; ?>");
                    errorVal=true;
                }
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) { 
                alert("Status: " + textStatus); alert("Error: " + errorThrown); 
                errorVal=true;
            } 
        });
        alert("numcorreo: " + numCorreo);
        alert("numalias: " + numAlias);
        alert(errorVal);
        if(!errorVal) $("#frmRegister").submit();
    });
});

此代码生成此输出:

maildata: 1
The mail already exists
usrdata: 1
The alias already exists
numcorreo: 0
numalias: 1
true

问题是numCorreo变量未正确设置。你会说我有一个布尔变量,应该是应该但是我在尝试获取maildata和usrdata的数量之前我遇到了布尔变量的这个问题。关于这里发生什么的任何想法?

谢谢和问候。

1 个答案:

答案 0 :(得分:0)

嗯,ajax请求是异步的。当您致电:alert("numcorreo: " + numCorreo);来自服务器的响应尚未到达,并显示初始化值“0”