我的问题是关于处理 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" />.
我的要求是,
- 当用户在搜索文本框中输入文本并按下回车键时 btnSearch_Click 应该触发
- 当用户在网格文本框中输入数量并按下回车键时,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 和网格文本框时调用此方法,并将按钮 ID 分别传递给触发事件 btnSearch 和 btnOrder。当我在搜索文本框中输入文本并按下回车键时,btnSearch_Click 正在触发,当我正在输入订单数量并按下回车键 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>
希望这会有所帮助。
非常感谢 安娜
关于c# - 响应 <input> 字段中的 "enter"按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11715661/