function yanzen1(p) {
                 var ckbool = true;
                 var zhi ="" //$("#" + p).val();
                 $.post("../gettype.aspx?type=vcode", function (data) { 
                 if (zhi != "123") { alert("验证码错误!"); ckbool = false; } });
                 return ckbool;
             }
这样返回的是TRUE;
经过调试发现外层函数执行完后才执行AJAX函数这个问题要怎么解决啊

解决方案 »

  1.   

     $.post("../gettype.aspx?type=vcode", function (data) {  
      if (zhi != "123") { alert("验证码错误!"); ckbool = false; } });
      return ckbool;//上面没有声明“同步”,所以这一句会马上执行,而不会等到上面AJAX执行完才执行。想用同步执行方式,如下:
    $.ajax({
    type: "POST",
    url: "请求的连接",
    data:"请求所需的参数"
    async:false,//同步请求
    success: function(msg){
    guanbi();//关闭loading提示层,
    //其他相关操作 msg返回值
    }
    });
      

  2.   

    假如我用上面的POST方式提交需要怎么样修改呢?
      

  3.   

    楼主何必执着于post,post只是ajax的简化方式,你可以看jquery源代码,最后还是去call ajax这个函数,这里由于你要同步执行(async:false)才返回结果,
    post几乎没有什么setting可以改,参看 http://jqapi.com/#p=jQuery.post
    所以还是用ajax把
      

  4.   

    晕,LZ好像都没弄明白Ajax是乍回事
      

  5.   

    非常感谢,$.post(??)传参数少方便呵呵