Как преобразовать символ в соответствующий ключевой код?
Например:
-
ato65 -
bto66 -
cto67 -
dto68
Как преобразовать символ в соответствующий ключевой код?
Например:
a to 65b to 66c to 67d to 68 Вы можете использовать функцию charCodeAt для достижения этой цели.
Рабочий пример:
function showKeyCode () {
var character = document.getElementById("character").value.substring(0, 1);
var code = document.getElementById("character").value.charCodeAt(0);
var msg = "The Key Code for the \"" + character + "\" character is " + code + ".";
alert(msg);
} <input type="text" id="character" size="15">
<input type="button" value="Show Key Code" onclick="showKeyCode();"> Что вы подразумеваете под "keyCode"? Различные браузеры имеют разные значения keyCode в событиях keyup и keydown, которые не обязательно будут соответствовать коду ASCII для соответствующего символа. Для буквенно-цифровых клавиш событие keypress даст вам код ASCII в большинстве браузеров через свойства charCode или which. Эта страница полезна.
Обновление сентябрь 2015
Как отметил Ян в комментариях, keyCode в конечном итоге будет заменен высшим свойством key. Тем не менее, для этого пока еще не так много поддержки браузера.
Найдите диаграмму keycode/ascii, например этот, и поместите его в массив, такой как array ['char'] = keycode, Это утомительно, но код будет выполняться довольно быстро.
Как указано в комментариях: принятый ответ неверен, поскольку он дает код символа, а не keyCode, который может быть другим, например, 'a'.charCodeAt(0) == 97 а правильный ключевой код - 65.
для преобразования только стандартных символов из [a-zA-Z] или цифр [0-9] можно использовать приведенный ниже код.
Однако это не работает правильно для каких-либо специальных клавиш . , Ö, # или вообще, и я не нашел хорошее решение для них. В качестве обходного пути можно использовать такой сайт, как http://keycode.info/ (который просто захватывает события onkeydown и считывает свойство event.keyCode).
function convertToKeyCode(target) {
var keyCode = target.value.toUpperCase().charCodeAt(0);
document.getElementById("keyCodeSpan").innerHTML = keyCode;
} <input type="text" oninput="convertToKeyCode(this)" size="1" maxlength="1">
<span>Keycode: </span><span id="keyCodeSpan"></span> Я искал это, когда наткнулся на этот вопрос. Я не думаю, что заметный ответ - правильный ответ. Для простых букв, A-Za-z, я использую следующее:
function getKeyCode(char) {
var keyCode = char.charCodeAt(0);
if(keyCode > 90) { // 90 is keyCode for 'z'
return keyCode - 32;
}
return keyCode;
}
Обратите внимание, что это предназначено для работы только для символов AZ и az.