如何在textBox里面实现回车触发某个button事件。
网上提供的方案很多,有效的我试过3种:
方案一是完美解决方案:简约而简单。无警告无错误。
-
<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#的
-
<asp:textbox id="t" runat="server" onkeydown="if(event.keyCode==13) btn1.click();FormName.Submit();">
这种也可以实现,但是会有警告说onkeydown不是TextBox的属性。
解决方案是在后台的page load里添加
-
t.Attributes.Add("onkeydown","要激发的函数");
然后进行一系列处理,消除警告。
第二种是通过js实现函数功能:
-
<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" />
这一种同样会有上面的警告,同样可以实现功能。
---------------------------------------------------------------------------
在textbox里面添加onkeydown方法的解决方案还需要研究,我暂时还没能消除那个警告。
= =#