响应字段中的"enter"按键<input>



我的问题是如何处理回车键。我有一个名为"order.aspx"的页面,它位于母版页中。我在这里解释的控制结构

1. <asp:TextBox ID="txtSearch" MaxLength="50" runat="server" Width="420px" CssClass="txtbox"></asp:TextBox>
2. <asp:Button ID="btnSearch" runat="server" OnClick="btnSearch_Click" />
3. one asp grid control with one column containing textbox for entering order quantity 
4. <asp:Button ID="btnOrder" runat="server" OnClick="btnOrder_Click" />.

我的要求是

  1. 当用户在搜索文本框中输入文本并按enter键时,btnSearch_Click应触发
  2. 当用户在网格文本框中输入数量并按enter键时,应触发btnOrder_Click

我尝试了不同的代码,最终得到了答案,但它并没有完全发挥作用。下面是我使用过的javascript代码。

function DoEnterKeyButtonClick(buttonId) {
     e = event;
     var code = (e.keyCode ? e.keyCode : e.which);
     if (code == 13) {
         document.getElementById('ctl00_CphMaster_' + buttonId).click();
         return false;
     }
}

我在按下txtSearch和grid文本框时调用此方法,并将Button id分别传递给触发事件btnSearch和btnOrder。当我在搜索文本框中输入文本并按下回车键时,btnSearch_Click将触发,当我输入订单数量并按下回车时,btnOrder_Click会触发。但问题是,更改页面索引后说第二页所需的功能不起作用。也就是说,当我输入订单数量并按下回车键时,首先触发btnSearch_Click,然后触发btnOrder_Click。这将清除输入的数量并导致错误。请帮帮我…

谢谢,Joby

而不是给出此document.getElementById('ctl00_CphMaster_' + btnSearch).click();

尝试此document.getElementById('<%= btnSearch.ClientID %>').click();

或者尝试使用jquery

$("#txtSearch").keyup(function(event){
    if(event.keyCode == 13){
        $("#btnSearch").click();
    }
});

否则,将控件放在asp:面板中,并将DefaultButton属性设置为btnSearch,如下所示

<asp:Panel ID="Panel1" runat="server" DefaultButton="btnSearch">
    <asp:TextBox ID="txtSearch" MaxLength="50" runat="server" Width="420px" CssClass="txtbox"></asp:TextBox>
    <asp:Button ID="btnSearch" runat="server" OnClick="btnSearch_Click" />
    </asp:Panel>

希望这会有所帮助。

非常感谢Anna

您的函数甚至不知道这到底是什么。试试这个

function DoEnterKeyButtonClick(event,buttonId){}

我保留了以下方便的片段。。

function getIntKey(key) {
    var keycode;
    if (key == null) { keycode = event.keyCode; } else { keycode = key.keyCode; }
    return keycode;
}

并使用它,就像这样。。

$("#txtSearch").keyup(function(e){
  if(getIntKey(e) == 13){
     //Enter was pressed, do somthing
  }
});

相关内容

最新更新