jQuery -得到字符按-不管键盘
jQuery - get character pressed - REGARDLESS of Keyboard
我试图检索插入到jQuery文本字段/输入的字符。
我用常用的:
var character = String.fromCharCode( e.keyCode || e.which );
方法,但唯一的问题发生在我使用不同的键盘布局时,我刚刚注意到。
例如,在标准美国键盘上,它工作得很好。例如,在德语键盘上,如果我将语言设置为英语-基本上将其呈现为标准的美国键盘,当我按下相当于:;'',./[]=-
的字符时,我得到了我在键盘上实际看到的德语字符(尽管与之对应的英语字符被添加到输入中)。
示例:如果我为下面的句子console.log( character )
,我得到:
- 输入:
[]'';/.,
- 控制台中:
ÛݺÞܼ¾¿
我明显的问题是,我怎样才能确保得到真正的字符插入器?
keypress事件不同于keyup和keydown事件,因为它包含实际按下的键。试着用它来代替。用下面的代码片段检查一下:
$('body').keypress(function(e){
console.log('keypress', String.fromCharCode( e.which ));
});
$('body').keyup(function(e){
console.log('keyup', String.fromCharCode( e.which ));
});
您可以做的是使字符出现在一个隐藏的文本框中,并获取实际值。这样,您将得到字符。您当前正在传递键代码,就好像它是一个字符代码一样。它们不一样。
http://jsfiddle.net/RQQpT/(function() {
var input = $("<input>").appendTo('body') // an hidden input element
.css({ position: "absolute",
left: -500,
top: -500 });
$('body').bind({ keydown: function(e) {
input.focus(); // make characters appear in input element
},
keyup: function() {
var value = input.val(); // get value when key pressed
input.val(""); // reset value of input element
if(value) {
alert(value); // if there is a value, display it
}
}
});
})();
相关文章:
- Android键盘不适用于包含Javascript的网页
- javascript虚拟键盘
- iPad虚拟键盘-哪一个-javasctript解决方案
- React Native DeviceEventEmitter键盘WillShow停止工作
- 通过键盘编写SVG文本
- 使用键盘箭头在画布上移动字符串
- 将select2与jQuery虚拟键盘配合使用
- 显示数字键盘的Phonegap-js提示
- 当屏幕键盘出现在手机中时,窗体会隐藏起来
- 完整的网站控制与键盘(无鼠标)
- 使用javascript为web应用程序自定义键盘快捷键
- 如何使键盘在多页的Iphone窗体上消失
- 如何在JavaScript中启动键盘快捷键函数
- 用键盘分页jQuery下一个和上一个控件.触发器('点击')不'不起作用
- Javascript-iPad Tab键检测,带蓝牙键盘
- 如何从用户那里读取键盘值
- 如何使用javascript触发键盘快捷键(ctrl+alt+R)
- 隐藏移动设备/平板电脑中文本字段上的键盘
- 如何在按键时通过键盘触发事件
- jQuery -得到字符按-不管键盘