我想获取键盘输入文本,而不是键码。例如,我按shift + f,我得到“F”,而不是听两个关键代码。另一个例子,我点击F3,我什么都没输入。我怎么知道在js?谢谢。
答案 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
}
});
答案 2 :(得分:0)
您可以收听onkeypress
事件。但是,您需要使用{{翻译密钥代码,而不是仅检查为您提供密钥代码的event.keyCode
(IE)或event.which
(Mozilla)属性。 1}}。
一个很好的演示在Javascript Char Codes (Key Codes)。查看源代码并查找String.fromCharCode()
函数。
其他参考文献:w3schools - onkeypress Event和w3schools - JavaScript fromCharCode() method。
答案 3 :(得分:0)
这太复杂了,无法迅速回答。这就是我用作键盘处理的权威参考。 http://unixpapa.com/js/key.html