en / ru

Особенности onkeyup и onkeypress для кириллицы

Оказывается, события keyup и keydown нельзя использовать когда вы хотите получить набранные символ на клавиатуре. Эти события используются для определения физически нажатой клавиши на клавиатуре, но они не скажут, какой символ был введен в результате. Эти события будут выдавать только коды латинского алфавита в верхнем регистре.

Для определения кода символа необходимо использовать keypress. А для преобразования цифрового кода в букву использовать String.fromCharCode( XX );

Пригодный код для определения введенного символа:

document.onkeypress = function(e) {
	e = e || window.event;
	var charCode = (typeof e.which === "number") ? e.which : e.keyCode;
	var typedChar = String.fromCharCode(charCode);
	alert("Typed character: " + typedChar);
};