ASP.NET/JavaScript-为什么不';";返回False";不阻止回发?

ASP.NET/JavaScript-为什么不';";返回False";不阻止回发?,javascript,asp.net,postback,Javascript,Asp.net,Postback,我觉得我已经做了很多次这个场景了,而且它通常是有效的,所以我显然错过了一些东西 这是我的服务器端ASP.NET按钮: <asp:Button ID="btnFoo" runat="server" Text="Foo" CssClass="button foo" OnClientClick="foo_Click();" /> 好吧,还有更多,但我把它删掉,以证明一点 当我单击按钮时,它调用客户端函数,并返回false 但它仍然会发回服务器,为什么 我基本上想通过点击按钮来实现: 进行

我觉得我已经做了很多次这个场景了,而且它通常是有效的,所以我显然错过了一些东西

这是我的服务器端ASP.NET按钮:

<asp:Button ID="btnFoo" runat="server" Text="Foo" CssClass="button foo" OnClientClick="foo_Click();" />
好吧,还有更多,但我把它删掉,以证明一点

当我单击按钮时,它调用客户端函数,并返回false

但它仍然会发回服务器,为什么

我基本上想通过点击按钮来实现:

  • 进行客户端验证
  • 如果验证通过,请发回
  • 如果没有,请在表单上显示一些错误消息

  • 当然,我可以将其更改为客户端按钮(input type=“button”),并在需要时手动启动回发,但我不需要这样做。或者我应该写
    return
    语句吗?所以当你点击按钮时,它
    return false
    不允许提交表单

     <asp:Button ID="btnFoo" runat="server" Text="Foo" CssClass="button foo" 
    OnClientClick="return foo_Click();" />
    
    
    
    知道这很明显(拍了拍脑袋)。谢谢。我刚刚注意到,如果我执行“var passedValidation=new Boolean(false);return passedValidation”,它仍然会发回。但如果我只是返回false,它不会。世界跆拳道联盟?有什么想法吗?@RPM1984:使用
    布尔
    构造函数,加上
    新建
    关键字,创建一个
    布尔
    对象包装器,在JavaScript中,当在布尔上下文中使用时,任何对象都被认为是真实的,例如:
    !!新布尔值(false)
    ==>
    true
    ,我建议您只需使用布尔值
    true
    false
    文本,它们直接表示原始值…@CMS-是的,我想是这样的。好吧,那有点糟糕,哦,好吧,我会坚持基本原则。谢谢你的澄清。
    function foo_Click() {
       return false;
    }
    
     <asp:Button ID="btnFoo" runat="server" Text="Foo" CssClass="button foo" 
    OnClientClick="return foo_Click();" />