Latest web development tutorials

keyCode 事件屬性

事件對象參考手冊 事件對象

實例

獲取按下的鍵盤按鍵Unicode值:

var x = event.keyCode;

x輸出結果為:

119 // 119 是字符 "w"

嘗試一下»

本文底部包含了更多實例。


定義和使用

keyCode屬性返回onkeypress事件觸發的鍵的值的字符代碼,或者onkeydownonkeyup事件的鍵的代碼。

兩種代碼類型的區別是:

  • 字符代碼- 表示ASCII 字符的數字
  • 鍵盤代碼- 表示鍵盤上真實鍵的數字
p>兩種類型的值不是都相等的,例如小寫字符"w" 和大寫字符"W" 有相同的鍵盤代碼,因為他們他們鍵盤上( "W" 代碼為"87"),但是它們有不同的字符代碼,兩個字符輸出是不一樣的( "w" 和"W" 字符代碼為"119" 和"87") - 查看以下實例可以更好的理解。

提示:如果需要知道用戶按下的是打印鍵(如"a"或"5"),建議使用onkeypress事件。 如果需要知道用戶按下的是功能鍵(如"F1", "CAPS LOCK" 或"Home") 可使用onkeydown 或onkeyup 事件。

注意:在Firefox中,, keyCode屬性在onkeypress事件中是無效的(返回0)。 瀏覽器兼容問題,可以一起使用which和keyCode屬性來解決:

var x = event.which || event.keyCode; //使用whichkeyCode ,這樣可支持不同瀏覽器

提示:所有Unicode字符列表可查看我們的完整Unicode參考手冊

提示:如果你需要將Unicode值轉換為字符,可以使用fromCharCode()方法。

注意:該屬性是只讀的。

注意: which和keyCode屬性提供了解決瀏覽器的兼容性的方法,最新版本的DOM事件推薦使用key屬性來替代該方法。

提示:如果你想查看是否按下了"ALT", "CTRL", "META"或"SHIFT"鍵,可使用altKey , ctrlKey , metaKeyshiftKey屬性。


瀏覽器支持

屬性
keyCode Yes Yes Yes Yes Yes


語法

event .keyCode

技術細節

返回值: 數字,表示Unicode 字符代碼或Unicode 鍵代碼
DOM 版本: DOM Level 2 Events


實例

更多實例

實例

使用onkeypress 和onkeydown 來演示字符代碼與鍵盤代碼的區別:

<input type= "text" onkeypress= "uniCharCode(event)" onkeydown= "uniKeyCode(event)" >

function uniCharCode(event) {
var char = event.which || event.keyCode;
document.getElementById( "demo" ).innerHTML = "Unicode CHARACTER code: " + char;
}

function uniKeyCode(event) {
var key = event.keyCode;
document.getElementById( "demo2" ).innerHTML = "Unicode KEY code: " + key;
}

當在鍵盤上按下"a" 鍵(不使用大寫鎖定), 輸出結果如下:

Unicode 字符代碼: 97
Unicode 鍵代碼: 65

嘗試一下»

實例

如果按下Esc 鍵彈出提示信息:

<input type= "text" onkeydown= "myFunction(event)" >

function myFunction(event) {
var x = event.keyCode;
if (x == 27 ) { // 27是ESC鍵
alert ( "You pressed the Escape key!" );
}
}

嘗試一下»

實例

將Unicode 值轉換為字符(不能用於功能鍵):

var x = event.keyCode; //獲取Unicode值
var y = String.fromCharCode(x); //將值轉換為字符

嘗試一下»


相關頁面

HTML DOM參考手冊: key事件屬性

HTML DOM參考手冊: keyCode事件屬性

HTML DOM參考手冊: which事件屬性

事件對象參考手冊 事件對象