ASP.NET链接用按钮输入密钥?

时间:2012-06-14 17:55:17

标签: c# asp.net event-handling webforms

我偶然发现了ASP.NET Web应用程序的一个小问题。

我的页面上有几个按钮,我想通过按Enter键来访问(取决于TextBox聚焦的那些)。

我认为,谷歌用Google帮助了我,但没有。

这是我发现的:

tbEmail.Attributes.Add("onkeydown", "if(event.which || event.keyCode){if ((event.which == 13) || (event.keyCode == 13)) {document.getElementById('" + btRegister.UniqueID + "').click();return false;}} else {return true}; ");

Source

这似乎不起作用,它仍然按下另一个我不想被按下的按钮。

有什么建议吗?

4 个答案:

答案 0 :(得分:21)

看起来您正在使用Web窗体。

您可以在Panel内包装您正在执行的操作,并在面板内设置DefaultButton属性。

<asp:Panel ID="LoginPanel" runat="server" DefaultButton="btLogin">
  <asp:TextBox ID="txtUser" runat="server" />
  <asp:TextBox ID="txtPass" runat="server" />
  <asp:Button ID="btLogin" runat="server">Login</asp:Button>
</asp:Panel>

当用户在txtUsertxtPass中输入数据然后按Enter键时,他们将触发按钮btLogin

答案 1 :(得分:4)

不要尝试使用JavaScript - 将表单放在<asp:Panel>中,并将DefaultButton属性设置为按钮的ID。

答案 2 :(得分:3)

使用jQuery更容易。绑定到keypress事件。

答案 3 :(得分:0)

您可以为每个文本框使用按键事件,这将执行不同的操作..所以:

private void a_keyPress(object sender, KeyPressEventArgs e)
{
    RadTextBox myBox = (RadTextBox)sender;

    if (e.KeyChar == (char)Keys.Return)
    {
        if (myBox.ID == "textbox1")
        // then do stuff...
    }
    else if //do stuff...
}