2014-02-26 52 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 - 导致对事件上述收益,从而抵消了回发