keyCode 事件属性


keyCode 事件属性

实例

获取按下的键盘按键Unicode值:

var x = event.keyCode;

x 输出结果为:

119 // 119 是字符 "w"

试一试 »

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

定义和使用

keyCode 属性返回 onkeypress 事件触发的键的值的字符代码,或者onkeydown 或 onkeyup 事件的键的代码。

两种代码类型的区别是:

  • 字符代码 - 表示 ASCII 字符的数字
  • 键盘代码 - 表示键盘上真实键的数字

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

注意: 在 Firefox 中,, keyCode 属性在 onkeypress 事件中是无效的 (返回 0)。浏览器兼容问题,可以一起使用 which 和 keyCode 属性来解决:

var x = event.which || event.keyCode;
// 使用 **which** 或 **keyCode**

这样可支持不同浏览器

提示: 所有 Unicode 字符列表可查看我们的 完整 Unicode 参考手册。

提示: 如果你需要将 Unicode 值转换为字符,可以使用 fromCharCode() 方法。

注意: 该属性是只读的。

注意: which 和 keyCode 属性提供了解决浏览器的兼容性的方法,最新版本的 DOM 事件推荐使用 key 属性来替代该方法。

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

浏览器支持

方法
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); // 将值转换为字符

试一试 »