当UseSubmitBehavior="false"时停止asp.net的postback

3

我有一个asp.net按钮,它的UseSubmitBehavior="false",就像这样:

  <asp:Button ID="btnLogin" runat="server" UseSubmitBehavior="false"    OnClientClick="if (!LoginPopup()) {return false;}" CssClass="login-button" Text="<%$ Resources: HRGELoggedOutMaster, Login %>"> </asp:Button>

以及像这样的JavaScript函数:

 function LoginPopup() {       
        var username = $("#<%= UsernameTextBox.ClientID %>").val();
        var password = $("#<%= PasswordTextBox.ClientID %>").val();
        var remMe;
        if ($('#<%= chkRememberMe.ClientID %>').attr('checked') == "checked") {
            remMe = true;
        }
        else {
            remMe = false;
        }

        if (username != '' && password != '')
            CallPageMethod("LoginPopup", ["username", username, "password", password, "rememberMe", remMe], LoginPopupSucceeded, LoginPopupFailed);
        else
            alert("Invalid username/password");
            return false;
    }

我将其在文本框的按键事件中调用,代码如下:

   $("#<%=this.UsernameTextBox.ClientID%>").keypress(function (event) {
           fireButtonClick($("#<%=this.btnLogin.ClientID%>"), event);
        });



 function fireButtonClick(ctrl, event) {
        if (event.which || event.keyCode) {
            if ((event.which == 13) || (event.keyCode == 13)) {
                ctrl.click();
                return false;
            }

我希望在输入无效时停止postback,但这并没有起作用。请建议我如何停止postback。


页面正在进行回传(postback)意味着您的JavaScript代码有误。您尝试过找出错误出现在哪里了吗? - The Hungry Dictator
1
当在ASP.NET按钮中添加UseSubmitBehavior="false"时,_doPostback()将自动添加到按钮。 - DotnetSparrow
1
你真的需要使用 UseSubmitBehavior 吗?你可以摆脱它并明确定义 OnClick。只有在 OnClientClick 返回 true 时,OnClick 才会触发。 - Abhitalks
尝试使用以下代码替代:**OnClientClick="if (!LoginPopup()) {return false;}",而不是return LoginPopup();**。 - Just code
3
仍然会回传。 - DotnetSparrow
1个回答

1
我不知道你的问题是否和我的一样。在updatepanel中,如果我将UseSubmitBehavior设置为false,页面会进行postback。
所以我在面板中放置了一个默认按钮,如下所示:
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" defaultbutton="btnDisableEnter"> 
<ContentTemplate> 
    <asp:Button ID="btnDisableEnter" runat="server" Text="fake button" OnClientClick="return false;" style="display:none;"/>
</ContentTemplate></asp:UpdatePanel> 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接