非标准: 该特性是非标准的,请尽量不要在生产环境中使用它!

已废弃: 该特性已经从 Web 标准中删除,虽然一些浏览器目前仍然支持它,但也许会在未来的某个时间停止支持,请尽量不要使用该特性。

KeyboardEvent.charCode 只读属性,返回 keypress 事件触发时按下的字符键的字符Unicode值。

与这些数值代码等价的常量,请参考 KeyEvent.


请使用 KeyboardEvent.key 取代。


var value = event.charCode;
  • value 被按下的字符键的字符Unicode值


<title>charCode example</title>

<script type="text/javascript">

function showChar(e)
alert("Key Pressed: " + String.fromCharCode(e.charCode) + "\n"
      + "charCode: " + e.charCode);


<body onkeypress="showChar(event);">
<p>Press any 'character' type key.</p>


keypress 事件中, 按键的Unicode值保存在 keyCode 或 charCode 属性其中之一, 不会二者同时都有。如果按下的是字符键 (例如 'a'), charCode 被设置为字符的代码值, 并区分大小写。(即 charCode 会考虑 Shift 键是否被按下)。 否则,被按下的键的代码被存储在 keyCode 中。

如果有一个或多个修饰键被按下,有一些复杂的规则来产生 charCode 的值,细节可参考  Gecko Keypress 事件 。

charCode 用于不会在 keydownkeyup 事件中被设置。这两种情况下,keyCode 会被设置。

要获取按键代码而不考虑是 keyCode 还是charCode, 请使用 which 属性。

通过输入法输入的字符,不会被设置到注册到通过 keyCode 和 charCodeActually with the Chinese IME I'm using, entering the IME results in a keypress event with keyCode = 229 and no other key events fire until the IME exits (which may happen after multiple characters are inputted). I'm not sure if other IME's work this way.

要查看特定按键的 charCode 值的列表,运行这个示例页面 Gecko DOM Reference:Examples #Example 7: Displaying Event Object Constants ,然后查看HTML 表格结果。


Specification Status Comment
Document Object Model (DOM) Level 3 Events Specification
Obsolete Initial definition; specified as deprecated


We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help! (en-US)

特性 Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
基本支持 26 (probably earlier) (Yes) 3 9 12.1 5.1 (probably earlier)
特性 Android Chrome for Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本支持 ? ? (Yes) ? ? ? 5.1 (probably earlier)