2014-02-26 48 views
3

我有一些麻煩搞清楚這一個ASP.NET OnServerClick和的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以防止發生這種情況。我錯過了什麼。任何幫助是極大的讚賞。

編輯

尤里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> 

我想我做錯了什麼。

感謝您的幫助了很多。

謝謝

回答

2

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

而不是

OnClientClick="btnLoginClick()" 

試試這個:

OnClientClick="return btnLoginClick()" 

既然你已經function btnLoginClick返回false - 導致對事件上述收益,從而抵消了回發