[英]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.