簡體   English   中英

ASP.NET OnServerClick和OnClientClick

[英]ASP.NET OnServerClick and OnClientClick

我在弄清楚這個問題時遇到了一些麻煩

這是我的login.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="EcnManager.Web.Login" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        <link href="Content/bootstrap.min.css" rel="stylesheet" />        
        <script src="Scripts/jquery-1.9.1.js"></script>        
    </head>
    <body>
        <div class="container">
            <div class="row" style="height:30px">
                <div class="col-lg-12"></div>
            </div>
            <div class="row">
                <div class="col-lg-4"></div>
                <div class="col-lg-4">
                    <div class="panel panel-primary">
                        <div class="panel-heading">ECN Manager Login</div>
                        <div class="panel-body">
                            <form role="form" runat="server">                                
                                <div class="form-group">
                                    <label for="txtUserName" class="control-label">Login Name</label>
                                    <input id="txtUserName" runat="server" class="form-control" placeholder="Login Name"/>
                                <%--<asp:TextBox ID="txtUserName" runat="server" CssClass="form-control"></asp:TextBox>--%>
                                </div>
                                <div class="form-group has-error">
                                    <label for="txtPassword" class="control-label">Password</label>
                                    <input id="txtPassword" runat="server" type="password" class="form-control" placeholder="Password"/>
                                <%--<asp:TextBox ID="txtPassword" runat="server" TextMode="Password" CssClass="form-control" ></asp:TextBox>--%>
                                </div>
                                <div class="form-group">
                                    <div class="row">
                                        <div class="col-lg-3">
                                            <%--<input runat="server" id="btnLogin" type="button" value="Login" class="btn btn-default" onserverclick="btnLogin_Click"/>--%>
                                            <asp:Button ID="btnLogin" runat="server" class="btn btn-default" Text="Login" OnClientClick="btnLoginClick()" OnClick="btnLogin_Click" />
                                        </div>
                                        <div class="col-lg-9">
                                            <asp:CheckBox ID="chkRemeberMe" runat="server" />
                                            <label class="text-center">Remember Me</label>
                                        </div>
                                    </div>
                                </div>
                            </form>
                        </div>
                        <div class="panel-footer"></div>
                    </div>
                </div>
                <div class="col-lg-4"></div>
            </div>
            <div class="row" style="height:30px">
                <div class="col-lg-12"></div>
            </div>
        </div>
         <script type="text/javascript">
             function btnLoginClick() {
                 alert("im here");
                 return false;
             };
        </script>      
    </body>
</html>

當我運行並單擊btnLogin時,我確實得到“我在這里”,但它也會啟動服務器端事件。 我將false傳遞給btnLoginClick以防止這種情況發生。 我錯過了什么。 任何幫助是極大的贊賞。

編輯

Yuriy Galanter的回答確實解決了這個問題。 謝謝

現在我正在努力做jcalabris回答,以便我可以學習

所以我做了以下,不使用asp按鈕,而是輸入類型按鈕

<input runat="server" id="btnLogin" type="button" value="Login" class="btn btn-default" onserverclick="btnLogin_Click"/>
<%--<asp:Button ID="btnLogin" runat="server" class="btn btn-default" Text="Login" OnClientClick="btnLoginClick()" OnClick="btnLogin_Click" />--%>

我改變了我的javascript代碼如下

<script type="text/javascript">
    $("#btnLogin").click(function(){
        event.preventDefault();
        return false;
    });
</script>  

這是正確的,對我來說它沒有用

我也試過以下

<script type="text/javascript">
    $("#btnLogin").click(function(e){
        e.preventDefault();
        return false;
    });
</script>  

我想我做錯了什么。

非常感謝你的幫助。

謝謝

您還必須在按鈕聲明中返回false。

代替

OnClientClick="btnLoginClick()"

試試這個:

OnClientClick="return btnLoginClick()"

由於你的function btnLoginClick已經返回false - 上面的結果返回結果為event,有效地取消了回發

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM