Вот демонстрация работы с jQuery при отображении двух последних введенных символов: http://jsfiddle.net/Ender/5gUHb/
И источник:
var keys = [];
$('#target').keypress(function(e) {
keys.unshift(e.which);
update();
});
function update() {
$('#last')
.prepend($('<li/>').text(String.fromCharCode(keys[0])))
.children(':eq(2)').remove();
}
Эта демонстрация фиксирует событие нажатия клавишив текстовой области снимает значение с массива (потому что тогда индексы представляют количество клавиш, которые были нажаты с момента нажатия этой клавиши), а затем обновляет дисплей.
Обновление дисплея просто выдвигаетпервое значение из массива в верхнюю часть <ul>
и удаляет дочерний элемент (если таковой имеется) в индексе 2 в списке.
Кроме того, обратите внимание, что из-за того, как jQuery работает с .keypress()
, вам НЕ нужно отфильтровывать модификатор или клавиши со стрелками.
ОБНОВЛЕНИЕ Пожалуйста, смотрите комментарий Тима Дауна к моему ответу для объяснения того, что фильтрация должна иметь место.Моя первоначальная заметка была ошибочной, основываясь на быстром тестировании в Chrome.