我偶然发现了一个 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}; ");
源
这似乎不起作用,它仍然按下另一个我此刻不想按下的按钮。
有什么建议吗?
看起来您正在使用 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>
当用户在txtUser
和txtPass
中输入数据,然后按 Enter 键时,他们将触发按钮btLogin
。
不要尝试使用 JavaScript - 将表单放入<asp:Panel>
并将 DefaultButton
属性设置为按钮的 id。
为此使用 jQuery 要容易得多。绑定到按键事件。
您可以为每个文本框使用按键事件,这将执行不同的操作。
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...
}