1

我的问题是关于处理 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" />.

我的要求是,

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

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

谢谢,乔比

4

3 回答 3

5

而不是给这个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>

希望这会有所帮助。

非常感谢安娜

于 2012-07-30T05:48:46.587 回答
1

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

function DoEnterKeyButtonClick(event,buttonId){}
于 2012-07-30T05:09:56.960 回答
1

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

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
  }
});
于 2012-07-30T05:53:39.760 回答