我的问题是如何处理回车键。我有一个叫做“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" />.

我的要求是,
当用户在“搜索”文本框中输入文本并按“回车”键时,将触发“搜索”按钮
当用户在网格文本框中输入数量并按enter键时,btnOrder_Click should fire。
我尝试了不同的代码,最终得到了答案,但它不是完全功能性的,下面是我使用的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文本框的键时调用此方法,并将按钮id分别传递给激发事件btnSearch和btnOrder。当我在搜索文本框中输入文本并按enter键时,则btnSearch撸Click将被激发,当我输入订单数量并按enter键时,则btnOrder撸Click将被激发启动。但问题是,在更改页面索引后,说第二页所需的功能不起作用。也就是说,当我输入订单数量并按回车键时,btnSearch_Click将首先启动,然后btnOrder_Click启动。这将清除输入的数量并导致错误。请帮助我。。。
谢谢,
乔比

最佳答案

而不是给这个document.getElementById('ctl00_CphMaster_' + btnSearch).click();
试试这个document.getElementById('<%= btnSearch.ClientID %>').click();
或者尝试使用jquery

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

否则,将控件放在asp:panel中,并将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>

希望这会有帮助。
非常感谢
安娜

08-28 06:09