0

我有一个网络表单,当用户点击输入时,该页面将被发回。事情是这样的:当用户单击表单时,将聚焦一个控件(我的鼠标指针变为当您要单击输入控件时的那个),当按下回车键时,我的页面将重新加载。

有没有办法捕捉任何键的按下,不管用户点击哪里?

4

4 回答 4

1
    //Jquery example:
    //Bind this keypress function to all of the input tags 
$("input").keypress(function (evt) { 
    //Deterime where our character code is coming from within the event 
    var charCode = evt.charCode || evt.keyCode; 
    if (charCode == 13) {
     //Enter key's keycode 
    return false; 
}
     });
于 2013-08-15T19:53:53.900 回答
0

如果您想防止在按下 Enter 时“单击”按钮并防止在用户处于输入控件时发生回发/提交,您需要将按钮设置为不回发或我过去所做的事情设置了一个按钮,在我遇到的情况下,它不会设置为我的面板的默认按钮。

<asp:Panel ID="pPanel" runat="server" DefaultButton="bDefault">
   <%-- here are all the input controls and a button that 
    now must be physically clicked to submit--%>
</asp:Panel>

<asp:Button ID="bDefault" runat="server" Text="" CssClass="hidden" OnClientClick="return false;" />

return false OnClientClick 导致按钮不回发。

于 2013-08-15T19:52:15.023 回答
0

您可以使用 jquery 并注册 keyup 事件,只关注返回键。然后你只需要确保你对给定的这个值做出正确的反应。

$(document).on('keydown', function(e){ //逻辑 }

于 2013-08-15T19:35:20.553 回答
0

您可以通过捕获KeyCode 13在 body 标记中禁用此功能,但不确定跨浏览器的兼容性如何。

<body onkeydown = "return (event.keyCode!=13)">
于 2013-08-15T19:34:38.500 回答