得知使用者按下按鍵代表的意思

HTML

<div id="myform">
Name:<input />
Email:<input />
</div>

jQuery(1)

$(document).keydown(function(e){
  //keyCode為ESC
  if (e.keyCode == 27) {
  $("#myform").hide("slow");
  }
});

我們透過document來為網頁注冊一個keydown事件,如果使用者focus在網頁上,然後由鍵盤有按下任何一個「鍵」,就可以由e.keyCode來得到一個數字,然後依這個數字,我們就可以寫對應的Code。

keyCode請參考:http://unixpapa.com/js/key.html

另外,我也能使用JavaScript中String物件的fromCharCode方法來得到文字內容,而不是數字。

JavaScript

function keyText(e) {
            // e.which 取得keyCode的數字
            // String.fromCharCode將keyCode轉換成對應的文字
            if (window.event) // IE
            {
                keynum = e.keyCode
            }
            else if (e.which) // Netscape/Firefox/Opera
            {
                keynum = e.which
            }
            alert(String.fromCharCode(keynum) + ":按鍵被按下了");
            return true;
        }

        document.onkeydown = keyText;

但以上JavaScript程式在IE8上會有問題,這也顯示出來一個重點,jQuery在跨Browser上的處理能力比傳統的JavaScript好上許多。如果你是資深的網頁程式開發人員就會知道這種痛,同一支程式,還要先去判斷是IE和非IE,是IE走A,不是IE走B,但有了jQuery可以大大減少這種不必要的幸苦路。

最後,我們再來修改一下jQuery程式,顯示一下我們所按下的按鍵文字(0-9,a-z能正常顯示),記得在IE及Firefox都測試看看。

jQuery(2)

$(document).keydown(function(e) {
  alert(String.fromCharCode(e.keyCode) + ":按鍵被按下了");
  //27為ESC
  if (e.keyCode == 27) {
  $("#myform").hide("slow");
  }
});

沒有留言:

張貼留言

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。