如何在按文本框上的enter键时防止重定向到另一个aspx页面
本文关键字:重定向 页面 aspx 另一个 enter 文本 | 更新日期: 2023-09-27 18:28:30
我有一个包含搜索功能的用户控件,当我默认加载该用户控件时,我将焦点设置为该搜索textbox
:
<asp:TextBox ID="txtSearch" runat="server"></asp:TextBox>
<asp:ImageButton ID="btnSearch" runat="server" ToolTip="Search" OnClick="btnSearch_Click" />
现在,当我按下文本框上的回车键时,控制权就会转到我的主页加载事件上,该主页加载事件包含一个重定向到相应url的方法。
但这种情况只发生在回车时,控制权转到母版页加载事件,我想停止这种情况。
那么如何防止这种情况发生呢??
我建议您遵循以下方法。将文本框和按钮放在面板内,并将默认按钮设置为输入时要激活的按钮。
<asp:Panel ID="panel" runat="server" DefaultButton="btnSearch">
<asp:TextBox id="txtSearch" runat="server" />
<asp:ImageButton ID="btnSearch" runat="server" ToolTip="Search" OnClick="btnSearch_Click" />
</asp:Panel>
您可以使用以下脚本禁用Enter键:
$('TextBox').keypress(function(event) {
if (event.keyCode == 13) {
event.preventDefault();
}
});
阻止文本框上的回车键
$('[id*="txtSearch"]').keypress(function(e){
if ( e.which == 13 ) return false;
});
使用C#创建KeyPress事件并在其中使用此代码。
if (e.KeyCode == Keys.Enter)
{
e.SuppressKeyPress=true;
}
您可以使用文本框上的onkeypress="__doPostBack(this.name,'OnKeyPress');"
创建事件。
<asp:TextBox ID="txtSearch" runat="server" onkeypress="__doPostBack(this.name,'OnKeyPress');"></asp:TextBox>