如何找出按下的字符键?

新手上路,请多包涵

我想找出在纯Javascript中以跨浏览器兼容的方式按下了什么字符键。

原文由 xXx 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 338
2 个回答

“清除”JavaScript:

 function myKeyPress(e){
 var keynum;

 if(window.event) { // IE
 keynum = e.keyCode;
 } else if(e.which){ // Netscape/Firefox/Opera
 keynum = e.which;
 }

 alert(String.fromCharCode(keynum));
 }
 <input type="text" onkeypress="return myKeyPress(event)" />

查询:

 $("input").keypress(function(event){
 alert(String.fromCharCode(event.which));
 });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
 <input/>

原文由 Coyod 发布,翻译遵循 CC BY-SA 4.0 许可协议

更新更干净:使用 event.key 。没有更多的任意数字代码!

注意:旧属性( .keyCode.which )已弃用。

 node.addEventListener('keydown', function(event) {
    const key = event.key; // "a", "1", "Shift", etc.
});

如果您想确保只输入单个字符,请检查 key.length === 1 ,或者它是您期望的字符之一。

Mozilla 文档

支持的浏览器

原文由 Gibolt 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题