5个文本框,2个按钮.如何将textBox分配给Button?

MrM*_*MrM 5 .net c# asp.net

我想让我的用户选择使用文本框并按Enter键.挑战在于我有5个文本框和2个选项.3个文本框属于一个按钮,2个文本框属于另一个按钮.如何按Enter键时按用户所在的文本框触发特定按钮?

The*_*TXI 12

我自己完成了这个,我有一个页面,有两种不同的用户类型的登录表单.我所做的是将两个表单分成他们自己的ASP面板控件,并在面板上将DefaultButton设置为我希望的任何一个.这样当他们完成在表单中键入并按下回车键时,它将在正确的按钮上提交.

示例:

<asp:Panel id="panel1" DefaultButton="button1">
    <asp:textbox id="textbox1"/>
    <asp:textbox id="textbox2"/>
    <asp:buton id="button1"/>
</asp:panel>

<asp:panel id="panel2" DefaultButton="button2">
    <asp:textbox id="textbox3"/>
    <asp:textbox id="textbox4"/>
    <asp:button id="button2"/>
</asp:panel>
Run Code Online (Sandbox Code Playgroud)

编辑:这是另一种方法,通过为文本框分配OnKeyPress属性来做到这一点.这是一个独立的解决方案,而不是我在顶部描述的解决方案

示例:

function clickButton(e, buttonid){
    var evt = e ? e : window.event;
    var bt = document.getElementById(buttonid);
    if (bt){
        if (evt.keyCode == 13){
            bt.click();
            return false;
        }
    }
}

//code behind
TextBox1.Attributes.Add("onkeypress",
    "return clickButton(event,'" + Button1.ClientID + "')");
Run Code Online (Sandbox Code Playgroud)

后面的代码生成以下代码:

<input name="TextBox1" type="text" id="TextBox1" onkeypress="return 
    clickButton(event,'Button1')"  />
Run Code Online (Sandbox Code Playgroud)

  • Goondocks:如果你想称他们为"黑客",那就继续吧.这个问题可能被标记为"最佳实践",但它也被标记为"ASP.NET",这意味着这个人正在寻找一种能够很好地适应ASP.NET可能施加的限制和限制的解决方案. (2认同)