2012-11-23 61 views
3

任何人都可以告訴我如何捕獲div標籤中的關鍵事件?如何從div標籤捕獲頁面中的任何關鍵事件?

我寫了這段代碼,但它不工作?

<div id="SDiv" style="background-color: White; " onkeypress="kypress()"> 
    <asp:Label ID="LblSaveAndMoveNext" runat="server" Visible="False" Text="Save"></asp:Label> 
</div> 

<script type="text/javascript"> 
    function kypress() { EnableButtons(true);} 
</script> 
+0

div標籤是不是這樣您可以設置焦點的標籤。 –

+0

您必須首先將焦點設置爲div。請查看此鏈接以獲取更多信息 [1]:http://stackoverflow.com/questions/3149362/capturing-key-press-event-in-div。 –

+0

然後如何實現。在我的頁面中我沒有表格標籤。我的要求是當我按下頁面中的任何鍵時,我應該調用kypress()函數。 – Lakki

回答

1

您必須有一個焦點才能觸發按鍵事件。

或者您可以將按鍵應用於文檔對象。

使用jQuery:

$(document).keypress(function(){ 
    /*do something*/ 
}); 
0

您可以通過使用一個DIV CONTENTEDITABLE,這樣克服它。確保你返回false以防止html中的更改。

<div id="SDiv" contenteditable="true" 
    style="background-color: White; " tab-index="1" onkeydown="return keydown();"> 
     <asp:Label ID="LblSaveAndMoveNext" runat="server" Visible="False" Text="Save"></asp:Label>   
    </div> 


    <script type="text/javascript"> 
     function keydown(){ 
      var keyCode = event.which; 
      if(keyCode==13) 
       document.write('You pressed Enter'); 
      //do your logic here 
      return false; 
     } 
    </script> 
0

只有一個可以接收焦點的元素,比如輸入和其他形式的相關元素,將觸發關鍵事件。要強制<div>元素能夠獲得焦點,您可以使其成爲可滿足的元素,這可能不是您想要的,或者添加tabindex屬性。使用值0將按照Tab鍵順序將元素置於默認位置。

<div id="SDiv" tabindex="0" style="background-color: White;" 
    onkeypress="kypress()"> 
    ... 
</div> 
相關問題