Обнаружение ключевого кода в AZERTY vs. QWERTY

Как я могу в JavaScript обнаружить ввод знака вопроса на клавиатуре AZERTY? На клавиатуре QWERTY знак вопроса дает код 191, а на AZERTY - 188 (запятая на QWERTY). Или я должен различать обе клавиатуры в JavaScript, но как?

2 ответа

Самое быстрое решение, которое я могу придумать, - это сравнить ключ с фактическим знаком вопроса, так что подобное было бы хорошим решением.

document.addEventListener('keydown', function(event) {
    if (event.key && event.key === '?') {
        // your code goes here
    }
}, true);

Если вы хотите обнаружить набираемый символ, используйте KeyboardEvent.key не KeyboardEvent.code - key свойство будет содержать либо введенный символ (например, "?") или строка типа "Shift" или же "ArrowUp" для специальных ключей. Расположение клавиши на клавиатуре не повлияет на результат.

$("#f").on("keydown", function(ev) {
  $(this).val(ev.key);
  return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input id="f" autocomplete="off">

Другие вопросы по тегам