我有一个带有 textarea 的网页,我需要捕获用户键入的键(以便我可以用不同的 unicode 字符替换键入的键)。我目前的代码如下:
$("#myTextArea").bind('keypress', function(event) {
var keyInput = event.which;
// call other functions
});
上面的代码适用于 PC 和 iPhone/Safari。但是,在 android(三星)平板电脑上使用 Chrome 时会失败。出于某种原因,当我在android 虚拟(软)键盘上键入时,不会触发“keypress”事件。安卓版本是5.0.2。
如果我尝试使用“keyUp”或“keyDown”,它总是为所有字符返回 229(返回键、空格、退格等除外)。
即使 keyCode 始终为 229,textarea 也会显示用户键入的正确字符。这意味着设备知道输入了哪个键,但不知何故我无法使用 javascript 处理此事件(和键代码)。
以下是我迄今为止尝试过的替代方案及其结果:
$("#mainTextArea").on("keydown keyup", function(event) {
// event.which and event.keyCode both return 229
$(document).on('keypress', function(event) {
// function is not triggered
$('#myTextArea').bind('input keypress', function(event) {
// comes inside function, but keyCode and which are undefined
任何有关此问题的帮助表示赞赏..