如何在文本框上按Enter键时阻止重定向到另一个aspx页面?

时间:2015-12-29 06:43:09

标签: c# asp.net

我有一个包含搜索功能的用户控件,当我默认加载此用户控件时,我将焦点设置为此搜索textbox

 <asp:TextBox ID="txtSearch" runat="server"></asp:TextBox>
   <asp:ImageButton ID="btnSearch" runat="server" ToolTip="Search" OnClick="btnSearch_Click" />

现在当我按下文本框上的回车键然后控制继续我的主页加载事件,并且主页加载事件包含一个重定向到相应URL的方法。

但这只发生在输入和控制转到主页加载事件,我想停止它。

那么如何防止这种情况?

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

您可以使用以下脚本禁用Enter键:

$('TextBox').keypress(function(event) {
    if (event.keyCode == 13) {
        event.preventDefault();
    }
});

答案 2 :(得分:1)

阻止在文本框中输入密钥

$('[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>