有時候咱們須要捕獲頁面上的回車事件,以達到一些特殊效果,例如在登陸頁面用戶輸入完登陸名和密碼後習慣直接敲回車,這時須要捕獲回車事件,在回車事件中激活form元素chrome
首先要捕獲 document對象的按鈕彈起事件(捕獲按下事件也能夠),瀏覽器會將用戶按下的按鍵信息對象傳遞到事件回調函數中(以參數的形式),傳入函數中的這個按鍵信息中包含了一個用來識別按鍵的編號(每一個按鍵都有一個對應的編號),而回車按鍵對應的編號就是13,因此咱們取出按鍵信息對象中的這個編號,判斷它是否是13就能夠了,初始版本以下:瀏覽器
1 document.onkeyup = function (e) {//按鍵信息對象以函數參數的形式傳遞進來了,就是那個e 2 var code = e.charCode || e.keyCode; //取出按鍵信息中的按鍵代碼(大部分瀏覽器經過keyCode屬性獲取按鍵代碼,但少部分瀏覽器使用的倒是charCode) 3 if (code == 13) { 4 //此處編寫用戶敲回車後的代碼 5 } 6 }
可這樣有個問題,在舊版IE下,按鍵信息對象並非直接傳遞到函數中的,全部的事件對象是存儲在window.event中的,因此爲了兼容舊版IE,咱們能夠先判斷一下window.event這個對象存在不存在,若存在,說明是舊版IE瀏覽器,若是不存在,說明是chrome、火狐之類的新式瀏覽器,改良版以下:函數
document.onkeyup = function (e) { if (window.event)//若是window.event對象存在,就以此事件對象爲準 e = window.event; var code = e.charCode || e.keyCode; if (code == 13) { //此處編寫用戶敲回車後的代碼 } }
思路和純JavaScript代碼相似,不過Jquery實現起來可能更簡單一些,由於Jquery自己就已經在某些方面作了瀏覽器兼容性設置,因此代碼會比較簡潔一些spa
1 $(document).keyup(function (e) {//捕獲文檔對象的按鍵彈起事件 2 if (e.keyCode == 13) {//按鍵信息對象以參數的形式傳遞進來了 3 //此處編寫用戶敲回車後的代碼 4 } 5 });
轉自:曾經最美的記憶code