function checkGuestNameOk(name) {
    $.ajax({
        type: "POST",
        url: "/ajaxCallBack.aspx",
        data: "type=checkUserName&&userName=" + name,
        dataType: "html"
    }).success(function (data) {
        return data;//能得到data为1
    });
}
  
        //ajax调用检查用户是否存在
        if (checkGuestNameOk($d.val()) == 1) {//这步得不到上面返回的data 是什么原因,提示undefined
            $d.siblings('span').text("用户名可用").css("display", "inline-block").css("color", "green");
            return true;
        }
        else {
            $d.siblings('span').text("用户名已被使用").css("display", "inline-block").css("color", "green");
            return false;
        }

解决方案 »

  1.   


    function get(){
    var ret ;
    $.ajax({
    async:false,
    url:"combobox_data.json"
    }).success(
    function(data){
    ret = data;
    });
    return ret;
    }
     
    你用的是异步调用,在没有返回 下边已经用了
      

  2.   

    异步加载应该在 success回调处理函数里去判断
    $.ajax({
            type: "POST",
            url: "/ajaxCallBack.aspx",
            data: "type=checkUserName&userName=" + escape(name),
            success:function(data){
                if(data) == "1"){
                    $d.siblings('span').text("用户名可用").css("display", "inline-block").css("color", "green");
                    return true;
                }
                else {
                    $d.siblings('span').text("用户名已被使用").css("display", "inline-block").css("color", "green");
                    return false;
                }        }
    })
      

  3.   


    你确定不行么?我怎么可以用?你要是想把那个提出来 在后边用 就必须要用同步方式 也就是设置 async为false 要么你就只能在success 方法里处理
      

  4.   

    $.ajax({
        type: "POST",
        url: "/ajaxCallBack.aspx",
        data: "type=checkUserName&userName=" + escape(name),
        success:function(data){
            checkGuestNameOk(data);
        }
    })function checkGuestNameOk(data) {
        if(data) == "1"){
            $d.siblings('span').text("用户名可用").css("display", "inline-block").css("color", "green");
            return true;
        }
        else {
            $d.siblings('span').text("用户名已被使用").css("display", "inline-block").css("color", "green");
            return false;
        }
    }
      

  5.   

    思路不是很好,你应该将结果直接输出到ajaxCallBack.aspx上面,比如在此页面上显示可用或者不可用的信息然后直接将获取的这个信息放到所要显示的地方,这样,就下面的代码就好了。function checkGuestNameOk(name) {
        $.ajax({
            type: "POST",
            url: "/ajaxCallBack.aspx",
            data: "type=checkUserName&&userName=" + name,
            dataType: "html"
        }).success(function (data) {
           $d.siblings('span').text(data).css("display", "inline-block").css("color", "green");
        });
    }