我有两个文本框和对应的两个按钮。当一个文本框获得焦点并且用户按下回车键时,我希望执行相应的按钮代码后台事件处理程序,就像单击了它一样。以下是示例代码:
Aspx:
<asp:TextBox ID="TextBox1" runat="server" onkeyup="myfunction1(event)"></asp:TextBox>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button 1" usesubmitbehavior="false" />
<asp:TextBox ID="TextBox2" runat="server" onkeyup="myfunction2(event)"></asp:TextBox>
<asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="Button 2" usesubmitbehavior="false" />
<asp:Label ID="Label1" runat="server"></asp:Label>
<script type="text/javascript">
function myfunction1(e) {
if (e.keyCode == 13)
document.getElementById('<%= Button1.ClientID %>').click();
}
function myfunction2(e) {
if (e.keyCode == 13)
document.getElementById('<%= Button2.ClientID %>').click();
}
</script>
代码后台:
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "Button 1 was clicked";
}
protected void Button2_Click(object sender, EventArgs e)
{
Label1.Text = "Button 2 was clicked";
}
但是,无论我在任何一个文本框中按下回车键,它总是执行
Button1
的代码事件处理程序。如果我点击按钮,它显然会像预期的那样工作。我错过了什么?
<input type ="submit" .../>
。由于“Textbox1”是第一个,因此它会获得提交事件。 - bhamlin