У меня есть веб-страница с текстовым полем, и мне нужно захватить ключи, введенные пользователем (так что я могу заменить разные символы Unicode для введенных ключей). Мой текущий код выглядит следующим образом:
$("#myTextArea").bind('keypress', function(event) {
var keyInput = event.which;
// call other functions
});
Этот выше код работает на ПК и iPhone/Safari. Тем не менее, он не работает при использовании Chrome на Android-телефоне (samsung). По какой-то причине, когда я набираю виртуальную (мягкую) клавиатуру android, событие "keypress" не запускается. Версия для Android - 5.0.2.
Если я попытаюсь использовать "keyUp" или "keyDown", он всегда возвращает 229 для всех символов (кроме ключа возврата, пробела, обратного пространства и т.д.).
Несмотря на то, что keyCode всегда 229, в текстовом поле отображаются правильные символы, введенные пользователем. Это означает, что устройство знает, какой ключ был введен, но каким-то образом я не могу получить дескриптор этого события (и key code) с помощью 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
Любая помощь по этой проблеме приветствуется.