日期:2014-05-17  浏览次数:20451 次

jquery ajax接收不到返回值 很奇怪!
JScript code

//验证是否已存在该用户名
function ExistsUserName(UserName)
{
    $.ajax({
        type:"GET",
        url:"Ajax/ajax.ashx",
        async:false,
        data:"UserName=" + UserName,
        success:function (data)
        {
            alert(data);
            return data;
        }
    })
}

//验证注册用户名
function ValidateName(txt_UserNameID,ValidateInfoID)
{
    //获取要验证的用户名
    var strtext=$("#" + txt_UserNameID).val();
    if(strtext=="")
    {
        $("#" + ValidateInfoID).html('<span class="error">不能为空!</span>');
        return false;
    }
    else if(! /^\w+$/.test(strtext))
    {
        $("#" + ValidateInfoID).html('<span class="error">不能包含特殊字符!</span>');
        return false;
    }
    else if( /^\d.*$/.test(strtext))
    {
        $("#" + ValidateInfoID).html('<span class="error">不能以数字开头!</span>');
        return false;
    }
    else if(strtext.length<6 || strtext.length>18)
    {
        $("#" + ValidateInfoID).html('<span class="error">长度在6-18位之间!</span>');
        return false;
    }
    else
    {
        [color=#FF0000]var flag = ExistsUserName(strtext);[/color]
        alert("返回值" +flag);
        if(flag=="True")
        {
            $("#" + ValidateInfoID).html('<span class="error">此用户名已存在!</span>');
            return false;
        }
        else
        {
            $("#" + ValidateInfoID).html('<img src="Images/ok.gif" />');
            return true;
        }
    }
}




输入一个已注册的用户名后,会先弹出True,然后弹出undefinde,显然没有接收到返回值,为什么呢,我也同步了呀?

------解决方案--------------------
应该在ajax外面返回data吧。
------解决方案--------------------
var flag=“”;
。。。。。。。
。。。。。。
success:function (data)
{
flag=data;
}
。。。。。。
alert("哎哟卧槽:flag="+flag);