首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javascript中的keycode和fromCharCode

javascript中的keycode和fromCharCode
EN

Stack Overflow用户
提问于 2012-02-04 19:03:20
回答 1查看 6.5K关注 0票数 1

我编写了以下代码(使用jQuery)来显示按下的键。

代码语言:javascript
复制
$(window).keydown(function(e){
  $("div").text("Key:" + String.fromCharCode(e.keyCode).toLowerCase());
  return false;
});

此代码使用普通字母字符(q,w,e,r...)。但当我按下非字母键(如']')时,显示的字符不正确。

例如:',‘->ç,']’->

我的代码出了什么问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-04 19:05:01

使用keypress事件和e.which属性。

jQuery对键码进行标准化,并将变量存储在event.which中。keypress事件的which属性是String.fromCharCode的唯一可靠值。

event.keyCode属性不能等于event.charCodeevent.which属性。

event.keyCode相反,对于不可打印的字符,event.which的值为零。这就是为什么你会看到奇怪的人物。

代码语言:javascript
复制
$(window).keypress(function(e) {
    var charCode = e.which;
    if (!charCode) { // <-- charCode === 0
        return;// return false, optionally
    }
    $("div").text("Key:" + String.fromCharCode(charCode).toLowerCase());
    return false; // Or e.preventDefault(); and/or e.stopPropagation()
}).keyup(function(e) {
    // Key is lifted, do something
});
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9140388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档