返回false不会取消asp.net回发

时间:2012-06-21 01:28:47

标签: asp.net

我很困惑为什么这个返回false不会取消后退。

 function validate() {
         return false;
        }



 <asp:Button ID="Button1" type="submit" OnClientClick="validate();" runat="server" Text="send"  />

最疯狂的部分是下面的代码取消了回发,但我需要在上面的函数中发生这个:

 <asp:Button ID="Button1" type="submit" OnClientClick="return false;" runat="server" Text="send" style="margin-right:150px;" />

3 个答案:

答案 0 :(得分:5)

尝试从函数中返回值,例如

<asp:Button ID="Button1" type="submit" OnClientClick="return validate();" runat="server" Text="send"  />

否则你只是执行一个返回布尔值的javascript函数。

答案 1 :(得分:1)

尝试使用此

  <input type"button" id="Button1" onclick="validate();">

如果您不需要回发,那么您不需要asp:Button

答案 2 :(得分:0)

对于那些在Button内使用UpdatePanel进行AJAX PostBack的人来说, Jonas Persson 的答案还有一点:当Button被渲染时,onclick属性看起来像

<input ...  onclick="OnClientClick_property; generated_ajax_postback();" />

要确保generated_ajax_postback();已执行,您必须OnClientClick_property这样做:if (!validate) return false;

否则它将返回true,并且根本不回发。