用JavaScript查找多个按钮中按下哪个按钮
问题描述:
我在页面上有多个文本框和多个按钮。如果我在一个TextBox中时按下Enter键,则应该执行相应的Button单击事件。用JavaScript查找多个按钮中按下哪个按钮
我写了下面的代码,但它不工作。任何人都可以请解释我如何...
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
<br />
<br />
<br />
<br />
<br />
<br />
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:Button ID="Button2" runat="server" Text="Button" OnClick="Button2_Click" />
<br />
<br />
<br />
<br />
<br />
<br />
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
<asp:Button ID="Button3" runat="server" Text="Button" OnClick="Button3_Click" />
<br />
<br />
<br />
<br />
<br />
<br />
<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
<asp:Button ID="Button4" runat="server" Text="Button" OnClick="Button4_Click" />
</div>
代码背后
public partial class JavaScriptEnterKey : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Attributes.Add("OnKeyDown", "HitButton('" + Button1.ClientID + "');");
TextBox2.Attributes.Add("OnKeyDown", "HitButton('" + Button2.ClientID + "');");
TextBox3.Attributes.Add("OnKeyDown", "HitButton('" + Button3.ClientID + "');");
TextBox4.Attributes.Add("OnKeyDown", "HitButton('" + Button4.ClientID + "');");
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write("Button1 is clicked");
}
protected void Button2_Click(object sender, EventArgs e)
{
Response.Write("Button2 is clicked");
}
protected void Button3_Click(object sender, EventArgs e)
{
Response.Write("Button3 is clicked");
}
protected void Button4_Click(object sender, EventArgs e)
{
Response.Write("Button4 is clicked");
}
}
**JavaScript**
function HitButton(Button) {
if (event.keyCode == 13) document.getElementById(Button).click();
}
答
尝试使用按键事件而不是键码。这似乎在我的代码中工作。
您是否需要通过输入键访问其他文本框才能按下'属于'另一个文本框?如果没有,您可以通过在页面上制作多个表单来实现这种行为。 – dougajmcdonald
我正在使用GridView来插入记录。那一次,我无法使用你的技术,对吧? :)我想要JavaScript特定的解决方案。 –
在webforms中不能有多个表单。文本框控件需要在窗体控件中,并且只允许1个窗体控件 –