Атрибут keyCode события KeyboardEvent

Определение и использование

keyCode属性 возвращает событие, которое запускает Событие onkeypress Unicode код символа клавиши, или событие, которое запускает onkeydown или Событие onkeyup Код клавиши Unicode для клавиши.

Различия между двумя типами кодов:

  • Код символа - это цифровой код ASCII символа
  • Код клавиши - это число, представляющее собой фактическую клавишу на клавиатуре

Эти типы не всегда означают одно и то же. Например, клавиша "w" и "W" имеют одинаковый код клавиатуры, потому что нажатая клавиша одинакова ("W" = цифра "87"), но код символа различается, потому что resulting символ различается ("w" или "W", то есть "119" или "87"). - Пожалуйста, посмотрите на следующие примеры, чтобы лучше понять это.

Совет:Чтобы понять, был ли нажат клавиша с printable символом (например, "a" или "5"), рекомендуется использовать это свойство в событии onkeypress. Чтобы понять, был ли нажат функциональная клавиша (например, "F1", "CAPS LOCK" или "Home"), используйте события onkeydown или onkeyup.

Комментарий:В Firefox свойство keyCode для события onkeypress не работает (возвращает только 0). Для решения проблемы совместимости между браузерами рекомендуется использовать Свойство whichИспользуется вместе с keyCode, например:

var x = event.which || event.keyCode;  // Использование which или keyCode зависит от поддержки браузером

Совет:Для списка всех символов Unicode обратитесь к нашему Полное руководство по Unicode.

Совет:Если нужно преобразовать значение Unicode в символ, используйте Метод fromCharCode().

Комментарий:Этот атрибут только для чтения.

Комментарий:Предоставление свойств keyCode и which предназначено только для совместимости. Последняя версия спецификации DOM событий рекомендует использовать свойство key (если доступно).

Совет:Если вы想知道, были ли нажаты клавиши "ALT", "CTRL", "META" или "SHIFT" при возникновении события клавиатуры, используйте altKey,ctrlKey/,metaKey или shiftKey Свойства.

Пример

Пример 1

Получение значения Unicode нажатой клавиши:

var x = event.keyCode;

Попробуйте сами

Пример 2

Использование onkeypress и onkeydown для демонстрации различий между кодами символов и кодами клавиатуры:

<input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)"> 
function uniCharCode(event) {
  var char = event.which || event.keyCode;
  document.getElementById("demo").innerHTML = "Код символа Unicode: " + char;
}
function uniKeyCode(event) {
  var key = event.keyCode;
  document.getElementById("demo2").innerHTML = "Код Unicode клавиши: " + key;
}

Когда вы нажимаете клавишу "a" на клавиатуре (не используя Capslock), результаты char и key будут:

Код символа Unicode: 97
Код Unicode клавиши: 65

Попробуйте сами

Пример 3

Если пользователь нажал клавишу Escape, покажите текст:

<input type="text" onkeydown="myFunction(event)"> 
function myFunction(event) {
  var x = event.keyCode;
  if (x == 27) {  // 27 - это клавиша ESC
    alert("Вы нажали клавишу Escape!");
  }
}

Попробуйте сами

Пример 4

Преобразование значения Unicode в символ (не подходит для функциональных клавиш):

var x = event.keyCode;                // Получение значения Unicode
var y = String.fromCharCode(x);       // Преобразование значения в символ

Попробуйте сами

Синтаксис

event.keyCode

Технические детали

Возвратное значение: Цифровой значений, представляющий код Unicode символа или код клавиши Unicode.
Версия DOM: DOM Level 2 Events

Поддержка браузеров

Свойства Chrome IE Firefox Safari Opera
keyCode Поддержка Поддержка Поддержка Поддержка Поддержка

Связанные страницы

Руководство по HTML DOM:Атрибут key события KeyboardEvent

Руководство по HTML DOM:Атрибут charCode события KeyboardEvent

Руководство по HTML DOM:Атрибут which события KeyboardEvent