繁体   English   中英

防止用户点击Enter时页面回发

[英]Prevent page postback when user hits enter

我有一个Web表单,当用户单击Enter时,该页面将被发回。 事情是这样的:当用户单击表单时,控件将处于焦点状态(当您将要单击输入控件时,我的鼠标指针将变为鼠标指针),并且在按下enter键时,将重新加载我的页面。

有没有办法捕获与用户单击位置无关的任何键的按下?

    //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; 
}
     });

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

<body onkeydown = "return (event.keyCode!=13)">

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

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

如果要防止在按下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;" />

返回false OnClientClick导致按钮不回发。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM