function  CheckValue(){
if($('#duty').val()=="1")
$.post("TeamAjax.aspx",{teamid,teamid},function(response)){
if(response=="1")
{
alert("已存在 ");
return false;
}
})
}<asp:Button ID="Button1" runat="server" Text="保存" OnClientClick="return CheckValue()" onclick="Button1_Click" />以上是我用jquery写的一个ajax验证,但是验证的时候,“已存在”弹出,但是页面还是刷新了,也执行了Button1_Click函数,请问这是为什么?如何解决。

解决方案 »

  1.   

    按钮用<input type="button">html控件
      

  2.   

    $.post 改成同步的,
      因为你异步的时候数据没有返回来之前它会继续执行,也许等到你执行后台事件的时候他才返回数据。
    这样return false; 是没有效果的。
      

  3.   

    你都用ajax处理了
    为什么还要Button1的Click事件?
      

  4.   


    我觉得lz的意思应该是要刷新页面显示录入结果吧。
    如果是这样。location.href就应该可以搞定的吧。
    谁知道lz在Button1——Click里还有什么事情做
      

  5.   

    服务器Button 换成 input button.
      

  6.   

    在全局设置Ajax属性 
    $.ajaxSetup({ 
      async: false 
      }); 
    还是不行。“已存在”弹出,但是页面还是刷新了,也执行了Button1_Click函数
    Button1_Click函数是我在后台写的将验证后的数据添加到数据库。
      

  7.   

    onclick="Button1_Click"
    当然会刷新 ~
      

  8.   

    $.post是异步执行,return false无法作为CheckValue()的返回值
    建议加一个<input type='button' onclick='CheckValue()'>
    在CheckValue()验证通过后触发Button1的click事件
    $('#<%= Button1.ClientID %>').click();