我偶然发现了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}; ");
这似乎不起作用,它仍然按下另一个我不想被按下的按钮。
有什么建议吗?
答案 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>
当用户在txtUser
和txtPass
中输入数据然后按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...
}