function check_add(){
     var userid_add = $("#userid_add").val();
     $.ajax({
       url: "user/checkUserID.action",
         type: "post",
         data: "userID="+userid_add,
         success:function(msg){ 
           if( msg == 1) {
             $("#userid_add_warn").html("账号已存在,请重新输入!");
             alert( "第一次"+$("#userid_add_warn").html());
           }
         },
         error:function(){alert("返回数据错误!")}
     });     
    
    alert( "第二次"+$("#userid_add_warn").html());
    if( $("#userid_add_warn").html() != ""){
          return false;
    }
    alert( "第三次"+$("#userid_add_warn").html());
    alert( "第四次"+$("#userid_add_warn").html());<s:textfield id="userid_add" name="userInfo.userID"
cssStyle="width:155px" label="操作员姓名"></s:textfield>
<em id="userid_add_warn"></em>
问题是第二次 alert 弹出的 $("#userid_add_warn").html() 为 空;
第一次 第三次 第四次 弹出的是 "账号已存在,请重新输入!"
原来是没有alert语句的,但不加
if( $("#userid_add_warn").html() != ""){return false;}就不执行,
非要在前面加个alert,才进入if语句然后返回。原意是不想加的,求解?第二个alert为啥是空?换个延迟函数还是一样!

解决方案 »

  1.   


    data:{"userID":userid_add },
      

  2.   

    楼主学习下啥子叫异步撒。
    请把所有对$("#userid_add_warn").html的操作全部放在success回调函数中。
    或者同步去。
      

  3.   


     $.ajax({
                  url: "user/checkUserID.action",
                    async: false,
                    type: "post",
                    cache: false,
                    data: "userID="+userid_add,
                    success:function(msg){ 
                      if( msg == 1) {
                           $("#userid_add_warn").html("账号已存在,请重新输入!");
                           alert(    "第一次"+$("#userid_add_warn").html());
                      }
                      if( $("#userid_add_warn").html() != ""){
                            return false;  //写在这里面不行吗?
                      }
                    },
                    error:function(){alert("返回数据错误!")}
         });            
      

  4.   


    全写在回调函数里 才能正常操作,不然就把ajax设置成为同步
      

  5.   

    写在success 里面  check_add() 无法返回 false
    我最终要的是 check_add 为falseasync: false,
    cache: false,
    已经试过结果还是不行··
      

  6.   

    function check_add(){
         var userid_add = $("#userid_add").val();
         var flag=true;
         $.ajax({
                  url: "user/checkUserID.action",
                    type: "post",
                    data: "userID="+userid_add,
                    success:function(msg){ 
                      if( msg == 1) {
                           $("#userid_add_warn").html("账号已存在,请重新输入!");
                           alert(    "第一次"+$("#userid_add_warn").html());
                           flag=false;
                      }
                    },
                    error:function(){alert("返回数据错误!")}
         });
         return flag;           
    }这样是否你想要的?
      

  7.   

    function check_add(){
         var userid_add = $("#userid_add").val();
         var flag=true;
         $.ajax({
                  url: "user/checkUserID.action",
                    type: "post",
                    data: "userID="+userid_add,
                    success:function(msg){ 
                      if( msg == 1) {
                           $("#userid_add_warn").html("账号已存在,请重新输入!");
                           alert(    "第一次"+$("#userid_add_warn").html());
                           flag=false;
                      }
                    },
                    error:function(){alert("返回数据错误!")}
         });
        return flag;          
    }
      

  8.   


    $.ajax({
                  url: "user/checkUserID.action",
                    async: false,
                    type: "post",
                    cache: false,
                    data: "userID="+userid_add,
                    success:function(msg){ 
                      if( msg == 1) {
                           $("#userid_add_warn").html("账号已存在,请重新输入!");
                           alert(    "第一次"+$("#userid_add_warn").html());
                      }
                      if( $("#userid_add_warn").html() != ""){
                            return false;  //写在这里面不行吗?
                      }
                    },
                    error:function(){alert("返回数据错误!")}
         });      alert("继续执行");
    当 msg =1 , $("#userid_add_warn").html("账号已存在,请重新输入!") 执行
    但 return false 没执行,
    程序弹出 "继续执行" ,
    check_add() 最终为 true.
      

  9.   


    要 alert(flat)一下;
      alert(flag);
      return flag; 
    不然flag还是true;  
      

  10.   


     早些时候试过 
     return flag;  前要 alert(flag)一下,不然flag为true;
      

  11.   

    你确定msg返回的是字符串?

    ajax没问题的·
      

  12.   

    ie清空了下 加了个async: false,
    可以了·