文本框回車事件


  我負責的項目,其中有一個頁面有兩個按鈕,兩個文本框,登錄時敲回車鍵觸發"登錄"事件,但是搜索時敲回車鍵也觸發"登錄"事件,其實應觸發"搜索事件"。實際上不管在哪個文本框敲回車,總是觸發第一個按鈕的事件 (這是由於通常回車鍵默認觸發第一按鈕的事件)。

  BOSS讓我修改一下,我想這么簡單的東西,不是什么難題,經過一番激烈的戰斗,無數腦細胞壯烈的犧牲,卻沒有任何進展,....很是窩火....最后在百度的幫助下找到了解決辦法,現分享如下: [實例]

要點有三:

1. 登錄的文本框是HTML控件,搜索是Asp.net控件,添加事件的方式不同;

2. 給button控件設置屬性: UseSubmitBehavior="False",將Button的type由submit變為button;

3. 取得button控件的ID: document.getElementById('<%=imgLogin.ClientID %>') 

實例代碼如下,歡迎大家拍磚...

前台代碼:

 

View Code
 1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="gly.aspx.cs" Inherits="gly" %>
2
3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4 <html xmlns="http://www.w3.org/1999/xhtml">
5 <head runat="server">
6 <title></title>
7 <script type="text/javascript">
8
9 function t_Login() {
10 if (event.keyCode == 13) {
11 document.getElementById('<%=imgLogin.ClientID %>').onclick();//注意這個地方拿ID,
12 }
13 }
14
15 function search() {
16 if (event.keyCode == 13) {
17 document.getElementById('<%=imgsearch.ClientID %>').onclick();
18 }
19 }
20
21 </script>
22
23 </head>
24 <body>
25 <form id="form1" runat="server">
26 <div>
27 登陸:
28 <input name="textfield" type="text" id="txtUserName" runat="server" onkeydown="t_Login();" />
29
30 <asp:Button ID="imgLogin" runat="server" OnClick="imgLogin_Click"
31 UseSubmitBehavior="False" Text="登陸" />
32 <br/>
33 搜索:
34 <asp:TextBox runat="server" ID="txtkey"/>
35
36 <asp:Button ID="imgsearch" runat="server" OnClick="imgsearch_Click"
37 UseSubmitBehavior="False" Text="搜索" />
38 </div>
39 </form>
40 </body>
41 </html>

 

后台代碼:

View Code
 1 using System;
2
3 public partial class gly : System.Web.UI.Page
4 {
5 protected void Page_Load(object sender, EventArgs e)
6 {
7 //登錄的文本框是HTML控件,搜索是Asp.net控件。為文本框添加事件的方法不同。
8 txtkey.Attributes.Add("onkeydown", "search();");
9 }
10
11 protected void imgLogin_Click(object sender, EventArgs e)
12 {
13 //登陸...
14 if(txtUserName.Value!="")
15 {
16 Response.Write("登陸...");
17 }
18 }
19
20 protected void imgsearch_Click(object sender, EventArgs e)
21 {
22 //搜索
23 if(txtkey.Text!="")
24 {
25 Response.Write("搜索...");
26 }
27 }
28 }

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM