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

Job*_*ian 1 html javascript c# asp.net jquery

我的问题是关于处理Enter键按下.我有一个名为"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" />.
Run Code Online (Sandbox Code Playgroud)

我的要求是,

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

我试过不同的代码终于得到了答案,但它没有完全的功能.Follwing是我用过的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;
     }
}
Run Code Online (Sandbox Code Playgroud)

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

谢谢,Joby

Ann*_*a.P 5

而不是给这个 document.getElementById('ctl00_CphMaster_' + btnSearch).click();

试试这个 document.getElementById('<%= btnSearch.ClientID %>').click();

或尝试使用jquery

$("#txtSearch").keyup(function(event){
    if(event.keyCode == 13){
        $("#btnSearch").click();
    }
});
Run Code Online (Sandbox Code Playgroud)

否则将控件放在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>
Run Code Online (Sandbox Code Playgroud)

希望这会有所帮助.

非常感谢安娜