Получить символ, вставленный в <textarea>при нажатии или нажатии клавиши - PullRequest
2 голосов
/ 29 марта 2011

Мне было интересно, есть ли способ получить текущее значение для клавиши или события нажатия клавиши.Чтобы лучше определить «текущее значение», я имею в виду значение текстовой области, включая «только что вставленный» символ.По умолчанию для этих событий значение не изменяется.Если это невозможно, я хотел бы знать, существует ли кросс-браузерный способ получить только что вставленное значение клавиши, которую я нажал (мне не нужен код клавиши,потому что, например, это не определяет, предположим, что я ввожу символ, если введенный символ - заглавные или строчные).

Ответы [ 2 ]

0 голосов
/ 10 сентября 2015

Я написал модуль, который переводит события keypress, keydown и keyup в символы и ключи соответственно.https://github.com/fresheneesz/keysight

Пример:

 textarea.addEventListener("keydown", function(event) {
    var character = keysight(event).char
    if(character === 'w') {
        console.log("got lower case w")
    } else if(character === 'W') {
        console.log("got upper case w")
    }
 })
0 голосов
/ 29 марта 2011

Вам придется подождать, пока не сработает событие keyup, прежде чем изменится фактическое значение.

В противном случае для нажатия клавиши или нажатия клавиши вам необходимо отобразить код символа для события (и это отличается для каждого браузера, если вы не используете какую-либо библиотеку JS, например, jQuery, которая ее стандартизирует) и определить позицию курсора и изменить значение таким образом. , Это может быть немного сложно, особенно в отношении поддержки браузера, если вы не используете библиотеку JS для этого.

...