ascii码与键盘代码是不一样的。文章链接
onkeypress与onkeyup/onkeydown的不同就是
onkeypress情况下,event.keyCode返回的是按键的ascii码值;
onkeyup/onkeydown情况下event.keyCode返回的是按键的键盘码
<script>
function show1()
{
if(event.keyCode)
{
var x=event.keyCode;
alert(String.fromCharCode(x));
}
}
funtcion show2(event)
{
var x=event.keyCode;
}
</script>
<input type="text" name="txt1" οnkeypress="show1()">
<input type="text" name="txt2" οnkeydοwn="show2(event)">
keyCode 属性返回onkeypress事件触发的键的值的字符代码,或者 onkeydown或 onkeyup 事件的键的代码。
两种代码类型的区别是:
- 字符代码 - 表示 ASCII 字符的数字
- 键盘代码 - 表示键盘上真实键的数字
提示: 如果需要知道用户按下的是打印键 (如 "a" 或 "5"),建议使用 onkeypress 事件。如果需要知道用户按下的是功能键(如 "F1", "CAPS LOCK" 或 "Home") 可使用 onkeydown 或 onkeyup 事件。
注意: 在 Firefox 中,, keyCode 属性在 onkeypress 事件中是无效的 (返回 0)。浏览器兼容问题,可以一起使用 which 和 keyCode 属性来解决:
提示: 所有 Unicode 字符列表可查看我们的 完整 Unicode 参考手册。
提示: 如果你需要将 Unicode 值转换为字符,可以使用 fromCharCode() 方法。
注意: 该属性是只读的。
注意: which 和 keyCode 属性提供了解决浏览器的兼容性的方法,最新版本的 DOM 事件推荐使用 key 属性来替代该方法。
提示: 如果你想查看是否按下了 "ALT", "CTRL", "META" 或 "SHIFT" 键,可使用altKey, ctrlKey, metaKey 或 shiftKey 属性。