9

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

我的页面上有几个按钮,我想通过按 Enter 键来访问它们(取决于哪个TextBox是焦点)。

谷歌搜索帮助了我,我想,但没有。

这是我发现的:

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}; ");

来源

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

有什么建议么?

4

4 回答 4

25

看起来您正在使用 Web 表单。

您可以将您正在做的事情包装在 a 中,并在面板内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>

当用户在其中一个中输入数据txtUser然后txtPass按下Enter键时,他们将触发按钮btLogin

于 2012-06-14T18:00:04.063 回答
4

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

于 2012-06-14T17:57:54.360 回答
3

使用 jQuery 会容易得多。绑定到按键事件。

于 2012-06-14T17:57:43.817 回答
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...
}
于 2012-06-14T17:59:08.953 回答