如何在Javascript中监听键盘类型文本?

时间:2010-12-06 15:38:46

标签: javascript events javascript-events

我想获取键盘输入文本,而不是键码。例如,我按shift + f,我得到“F”,而不是听两个关键代码。另一个例子,我点击F3,我什么都没输入。我怎么知道在js?谢谢。

4 个答案:

答案 0 :(得分:20)

要在文档范围内执行此操作,请使用keypress事件,如下所示。目前没有其他广泛支持的关键事件可以做到:

document.onkeypress = function(e) {
    e = e || window.event;
    var charCode = (typeof e.which == "number") ? e.which : e.keyCode;
    if (charCode) {
        alert("Character typed: " + String.fromCharCode(charCode));
    }
};

对于所有与键相关的JavaScript问题,我推荐Jan Wolter的优秀文章:http://unixpapa.com/js/key.html

答案 1 :(得分:2)

我使用jQuery做这样的事情:

$('#searchbox input').on('keypress', function(e) {

    var code = (e.keyCode ? e.keyCode : e.which);
  if(code == 13) { 
           //Enter keycode
     //Do something
  }

});

编辑:由于您没有绑定到文本框使用:

$(window).on('keypress', function(e) {

    var code = (e.keyCode ? e.keyCode : e.which);
  if(code == 13) { 
           //Enter keycode
     //Do something
  }

});

http://docs.jquery.com/Main_Page

答案 2 :(得分:0)

您可以收听onkeypress事件。但是,您需要使用{{翻译密钥代码,而不是仅检查为您提供密钥代码的event.keyCode(IE)或event.which(Mozilla)属性。 1}}。

一个很好的演示在Javascript Char Codes (Key Codes)。查看源代码并查找String.fromCharCode()函数。

其他参考文献:w3schools - onkeypress Eventw3schools - JavaScript fromCharCode() method

答案 3 :(得分:0)

这太复杂了,无法迅速回答。这就是我用作键盘处理的权威参考。 http://unixpapa.com/js/key.html