Код клавиши Keydown не возвращает ожидаемый результат

Меня немного смущают коды символов, возвращаемые свойством keyCode в событии keydown. Я ожидал, что коды будут соответствовать кодам ascii. Кажется, что многие из них работают, но для некоторых я получаю неожиданные результаты: Примерами являются клавиши удаления и '.' ключ

Используя приведенный ниже код: я получаю следующие коды: DeleteKey: 46 (ASCII val = 127)

ДелКей:110

'.' : 190 - которого нет даже в таблице ascii по умолчанию.

Похоже, что клавиша удаления сопоставляется с кодом Ascii для '.' ключ

Я использую IE 9 для тестирования.

Это неправильное понимание с моей стороны, что они должны сопоставляться с десятичными записями в таблице ascii?

<script type="text/javascript">

    $(document).ready(function () {
        $("body").live("keydown", function (e) {
            console.log(e.keyCode);
        });
    });


</script>

<div id="parent">
<span id="target">Test</span>
</div>

person TGH    schedule 02.04.2013    source источник
comment
Используйте e.which для получения кода ключа - api.jquery.com/event.what   -  person Ian    schedule 02.04.2013
comment
Проверьте это... Как говорится, коды клавиш и значения ASCII НЕ совпадают.   -  person jahroy    schedule 02.04.2013
comment
Хорошо спасибо. Я посмотрю ссылку @jahroy   -  person TGH    schedule 02.04.2013


Ответы (1)


Я не думаю, что keyCode и ASCII - это одно и то же.

Чтобы получить значение keyCode, вы можете использовать

$("body").live("keydown",function(e){
    console.log(String.fromCharCode(e.keyCode));
})
person Justice Erolin    schedule 02.04.2013
comment
Да, я использую это для целей отображения, но в некоторых случаях мне приходится воздействовать на коды клавиш. Я посмотрю сопоставленные значения по ссылке, предоставленной @jahroy. - person TGH; 02.04.2013