代码之家  ›  专栏  ›  技术社区  ›  MrM

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

  •  5
  • MrM  · 技术社区  · 15 年前

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

    3 回复  |  直到 15 年前
        1
  •  12
  •   TheTXI    15 年前

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

    例子 :

    <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>
    

    编辑 这里是 another method 如何通过将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 + "')");
    

    代码隐藏会生成以下代码:

    <input name="TextBox1" type="text" id="TextBox1" onkeypress="return 
        clickButton(event,'Button1')"  />
    
        2
  •  4
  •   rvarcher    15 年前

    在这种情况下,我会将相关的文本框和按钮分组在一个面板中。面板有一个可以使用的默认按钮属性。defaultbutton=“此面板中的默认按钮强制控制”

    http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.panel.defaultbutton.aspx

        3
  •  1
  •   cllpse    15 年前

    使用 jQuery 这相当容易做到:

    $(function ()
    {
        $("#id-of-textbox-1, #id-of-textbox2, etc.").keyup(function (e)
        {
            if (e.keyCode === 13) $("#id-of-submit-button-1").click();
        });
    
        // And for the second group
    
        $("#id-of-textbox-3, #id-of-textbox4, etc.").keyup(function (e)
        {
            if (e.keyCode === 13) $("#id-of-submit-button-2").click();
        });
    });
    

    如果您使用的是ASP.NET 纽扣 控件,请确保设置属性 UseSubmitBehavior 对那些错误。