关于asp.net中TextBox里面实现回车触发的解决方案

最近在做一个项目,在我职责范围之内有一个“”搜索“”功能,实现方案并不难,但却被一些小问题给绊住了,今天总结第一个小问题:如何在textBox里面实现回车触发某个button事件。

网上提供的方案很多,有效的我试过3种:

方案一是完美解决方案:简约而简单。无警告无错误。
Code:

<asp:panel id="panSearch" runat="server" defaultbutton="SearchBtn"> 
   <asp:requiredfieldvalidator id="KeywordsBlank" runat="server" controltovalidate="KeywordsTextField" errormessage="Required"></asp:requiredfieldvalidator> 
   <asp:textbox id="KeywordsTextField" runat="server" width="257px" height="17px" autocompletetype="Search"></asp:textbox> 
   <asp:imagebutton id="SearchBtn" runat="server" width="22px" height="18px" borderwidth="0" imageurl="~/images/search_btn.gif" onclick="BtnToSearch" imagealign="Middle" /> 
   <br /> 
</asp:panel> 

其中的关键是将TextBox和你要关联的Button放在同一个panel里面,用DefaultButton="SearchBtn"来声明要激发的button

方案二:在textBox里面使用onkeydown方法,这里又分为两种:
一种是直接利用C#的
Code:

<asp:textbox id="t" runat="server" onkeydown="if(event.keyCode==13) btn1.click();FormName.Submit();">  

这种也可以实现,但是会有警告说onkeydown不是TextBox的属性。
解决方案是在后台的Page_Load里添加
Code:

 t.Attributes.Add("onkeydown","要激发的函数");  

然后进行一系列处理,消除警告。

第二种是通过js实现函数功能:
Code:

<html>
 <head>
  <script type="text/javascript">  
        function keyDown()  
        {  
            var e=event.srcElement;  
            if(event.keyCode==13)  
            {  
             document.getElementById("Button1").click();  
            }  
        }  
        </script> 
 </head> 
 <body> 
  <form id="form1" runat="server"> 
   <asp:textbox id="TextBox1" runat="server" onkeydown="keyDown"></asp:textbox> 
   <asp:button id="Button1" runat="server" onclick="Button1_Click" text="Button" /> 
   <input style="display:none" /> 
  </form>
 </body>
</html>

这一种同样会有上面的警告,同样可以实现功能。

textbox里面添加onkeydown方法的解决方案还需要研究,我暂时还没能消除那个警告。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值