簡體   English   中英

ASPX頁面上的onkeydown事件

[英]onkeydown event on an ASPX page

我正在嘗試向.NET中的aspx頁面添加onKeyDown事件。 由於我無權訪問body標簽,因此我嘗試執行以下操作:

if (window.addEventListener) {
    window.addEventListener('onkeydown', checkEnter(event), false);
}
else {
    window.attachEvent('onkeydown', checkEnter(), false);
}

function checkEnter(event) {
    if (event.keyCode == 13) {
        ShowList();
    }
}

但是, event這種方式變為未定義。 誰能幫我這個?

您可以使用jQuery輕松實現相同的結果。

<script type="text/javascript" 
   src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
    $(document).keypress(function (e) {
        if (e.which == 13) {
            alert("Enter key is pressed.");
        }
    });
</script>

或用戶Panel控件的DefaultButton捕獲回車鍵,如果使用Button控件,則這是首選方法

<asp:Panel runat="server" ID="SearchPanel" DefaultButton="SearchButton">
    <asp:Button runat="server" ID="SearchButton" Text="Search" />
</asp:Panel>

第一個錯誤是綁定事件的方式。

            window.addEventListener('onkeydown', checkEnter(event), false);

您正在綁定該函數時執行該函數。 ------------------- ^

您只需要將功能分配給事件。

window.addEventListener('keydown', checkEnter, false);

此外,事件類型應為“ keydown”

您不必擔心將事件對象默認傳遞給函數。

您需要更改兩件事:

  • 從“ onkeydown”中刪除“ on”
  • 無需將“事件”傳遞給“ checkEnter”

      if (window.addEventListener) { window.addEventListener('keydown', checkEnter, false); } else { window.attachEvent('keydown', checkEnter, false); } function checkEnter(event) { if (event.keyCode == 13) { ShowList(); } } 

請參閱: https//developer.mozilla.org/zh-CN/docs/Web/API/EventTarget.addEventListener

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM