function CheckAdd() {
            var ret = true;
            
            if ($id("txtEstate").value == "") {
                alert('請輸入樓盤名稱!');
                ret = false;
            }else{
                 $.post("../Handle/getEsArea.ashx",{strEsName:value},function (data){
                     var  objddl=document.getElementById("ddlArea");     
                     if(data!="")
                     {
                        alert("该樓盤存在,請點擊右邊按鈕添加新樓盤");
                        ret=false;
                     }
                });
            }
            alert(ret);  //这里测试执行顺序,先执行这里并返回,然后再执行 $.post("../Handle/getEsArea.ashx",{strEsName:value},function (data),为什么呢?所以但楼盘存在时起不到验证作用
            return ret;
}//页面加载时加入验证
 protected void Page_Load(object sender, EventArgs e)
{
            if (!IsPostBack)
            {
                ImgBtnAdd.Attributes.Add("onclick", "return CheckAdd()");//加入验证
            }
}

解决方案 »

  1.   

    http://topic.csdn.net/u/20100517/17/73084814-bbf7-42a9-a883-1b37c76c445e.html
      

  2.   

    1楼说的道理,但是这样它是执行了验证然后再执行jQuery,这样的话jquery验证都没意义啦,还有什么方法处理吗
      

  3.   

    这个问题曾经也搞了很久,浏览器执行ajax的时候似乎是多线程的,异步调用不等返回就执行下面的逻辑了,我是把逻辑全都写在回调函数里面,实际上变成同步方式了
      

  4.   

    沒看大懂意思,反正$.post 默認是異步 提交之後就繼續執行
      

  5.   

    $.ajaxSetup({ 
      async: false 
    }); 加一句这个就行了。同步