如何在按文本框上的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的方法。

但这种情况只发生在回车时,控制权转到母版页加载事件,我想停止这种情况。

那么如何防止这种情况发生呢??

如何在按文本框上的enter键时防止重定向到另一个aspx页面

我建议您遵循以下方法。将文本框和按钮放在面板内,并将默认按钮设置为输入时要激活的按钮。

<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>