js keyup、keypress和keydown事件 詳解

來源:互聯網
上載者:User

標籤:狀態   end   客戶   關於   處理   style   菜單鍵   alt   接下來   

js keyup、keypress和keydown事件都是有關於鍵盤的事件

當一個按鍵被pressed 或released在每一個現代瀏覽器中,都可能有三種用戶端事件。

  1. keydown event
  2. keypress event
  3. keyup event

keydown事件發生在鍵盤的鍵被按下的時候,接下來觸發keypress事件。 keyup 事件在按鍵被釋放的時候觸發。

這三個事件在頁面中的使用方法如下例:

<input id="testkeyevent" name="testkeyevent"  onKeyUp="keyup()" />

<input id="testkeyevent" name="testkeyevent"   onkeypress="keypress()" />

<input id="testkeyevent" name="testkeyevent"   onkeydown="keydown()" />

 

對應的js函數:

function keyup(){ ...}

function keypress(){ ...}

function keydown(){ ...}

 

注意:

  1. KeyDown觸發後,不一定觸發KeyUp,當KeyDown 按下後,拖動滑鼠,那麼將不會觸發KeyUp事件。
  2. KeyPress主要用來捕獲數字(注意:包括Shift+數位符號)、字母(注意:包括大小寫)、小鍵盤等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜單鍵}、{開始鍵}和方向鍵外的ANSI字元
  3. KeyDown 和KeyUp 通常可以捕獲鍵盤除了PrScrn所有按鍵(這裡不討論特殊鍵盤的特殊鍵)
  4. KeyPress 只能捕獲單個字元
  5. KeyDown 和KeyUp 可以擷取的群組合鍵。
  6. KeyPress 可以捕獲單個字元的大小寫
  7. KeyDown和KeyUp 對於單個字元捕獲的KeyValue 都是一個值,也就是不能判斷單個字元的大小寫。
  8. KeyPress 不區分小鍵盤和主鍵盤的數字字元。
  9. KeyDown 和KeyUp 區分小鍵盤和主鍵盤的數字字元。
  10. 其中PrScrn 按鍵KeyPress、KeyDown和KeyUp 都不能捕獲。
  11. 在使用鍵盤的時候,通常會使用到CTRL+SHIFT+ALT 類似的按鍵組合功能。對於此,我們如何來判定?

     通過KeyUp 事件能夠來處理(這裡說明一下為什麼不用KeyDown,因為在判定KeyDown的時候,CTRL、SHIFT和ALT 屬於一直按下狀態,然後再加另外一個鍵是不能準確擷取的群組合鍵,所以使用KeyDown 是不能準確判斷出的,要通過KeyUp 事件來判定 )

     這裡簡單的列舉出CTRL+其它鍵的組合判定代碼:


private void Form3_KeyUp(object sender, KeyEventArgs e)
{
if (e.Control)
{
MessageBox.Show("KeyUp:Ctrl+" + e.KeyValue.ToString());
}
}

  1. 捕獲PrScrn按鍵事件

 通過一種鉤子的方式可以判定PrScrn 按鍵事件,鉤子可以擷取任何鍵盤事件。

 

 

 

 

 

js keyup、keypress和keydown事件 詳解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.