Я успешно использовал jQuery (в Chrome).Если вы удерживаете клавишу нажатой, она подсчитывает каждое изменение, а не только первое, и подсчитывает непечатные ключи, например, клавишу Backspace.
HTML
<input id="txt" type="text" />
<span id="changeCount">0</span>
JavaScript
$('#txt').keydown(function(event) {
// Don't count the keys which don't actually change
// the text. The four below are the arrow keys, but
// there are more that I omitted for brevity.
if (event.which != 37 && event.which != 38 &&
event.which != 39 && event.which != 40) {
// Replace the two lines below with whatever you want to
// do when the text changes.
var count = parseInt($('#changeCount').text(), 10) + 1;
$('#changeCount').text(count);
}
});
Как я уже говорил выше, вы захотите отфильтровать все коды клавиш, которые не изменяют текст, например ctrl , shift , alt , , введите и т. Д. Существует также граничное условие, если вы нажимаете backspace или delete Клавиша, когда текстовое поле пустое или текстовое поле имеет максимальную длину и нажата клавиша для печати, но с этим тоже не сложно справиться.
Вот рабочий пример jsfiddle .