簡體   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