Obtener el Carácter de valor de código de tecla en JavaScript... luego recortar
-
21-09-2019 - |
Pregunta
Esto es lo que tengo ahora:
$("input").bind("keydown",function(e){
var value = this.value + String.fromCharCode(e.keyCode);
}
Si el e.keyCode
no puede ser un carácter ASCII (Alt, la tecla de retroceso, del, flechas, etc.)...Yo ahora necesitaría trim
estos valores de value
de alguna manera (preferiblemente mediante programación - no con tablas de búsqueda).
Estoy usando jQuery.
Debo utilizar la keydown
evento. keyPress
no activar para ciertas teclas necesito capturar (Esc, del, la tecla de retroceso, etc.).
No puedo utilizar setTimeout
para obtener el valor de entrada. setTimeout(function(){},0)
es demasiado lento.
Solución
Tal vez no he entendido bien la pregunta, pero no se puede utilizar keyup
si desea capturar ambas entradas?
$("input").bind("keyup",function(e){
var value = this.value + String.fromCharCode(e.keyCode);
});
Otros consejos
En mi experiencia String.fromCharCode(e.keyCode)
es poco fiable. String.fromCharCode
espera charCodes Unicode como un argumento; e.keyCode
vuelve javascript códigos de teclas. códigos de teclas de Javascript y charCodes Unicode son no lo mismo! En particular, las teclas numérico devuelven un keycode
diferente de las teclas numéricas ordinarias (ya que son claves diferentes), mientras que el mismo keycode
es devuelto por tanto letras upper
y lowercase
(que pulsó la misma clave en ambos casos), a pesar de ellos con diferente charcodes
.
Por ejemplo, el número de la llave ordinaria 1 genera un evento con keycode
49, mientras que la tecla numérico 1 (con Numlock en) genera keycode
97. Se utiliza con String.fromCharCode
obtenemos lo siguiente:
String.fromCharCode(49) returns "1"
String.fromCharCode(97) returns "a"
String.fromCharCode
espera charCodes Unicode, no códigos de teclas de javascript. La tecla a genera un evento con un keycode
de 65, independentant del caso del carácter que generaría (hay también un modificador para si Shift se pulsa la tecla , etc., en el evento). El carácter a tiene un charcode
Unicode de 61 mientras que el carácter A tiene un charcode
de 41 (de acuerdo con, por ejemplo, http://www.utf8-chartable.de/ ). Sin embargo, esas son valores hex
, la conversión a decimal nos da una charcode
de 65 para "A" y 97 para "a". [1] Esto es consistente con lo que obtenemos de String.fromCharCode
para estos valores.
Mi propio requisito se limita a procesar números y las letras ordinarias (aceptar o rechazar en función de la posición de la cadena) y dejar que los caracteres de control ( F teclas situadas, Ctrl -algo) a través. De esta manera puedo comprobar si los caracteres de control, si no es un carácter de control verifico contra un rango y sólo entonces necesito para obtener el carácter real. Teniendo en cuenta que no estoy preocupado por caso (cambio de todas las letras en mayúsculas de todos modos) y ya han limitado la gama de códigos de teclas, lo único que tiene que preocuparse de las teclas numérico. Las siguientes es suficiente para que:
String.fromCharCode((96 <= key && key <= 105)? key-48 : key)
De forma más general, una función para devolver de forma fiable el personaje de un charcode
sería grande (tal como un plugin de jQuery), pero no tengo tiempo para escribir hace un momento. Lo sentimos.
También me menciono e.which
(si estás usando jQuery) que normaliza e.keyCode
y e.charCode
, por lo que no tiene que preocuparse acerca de lo que se ha pulsado especie de llave. El problema con la combinación con String.fromCharCode
permanece.
[1] Estaba confundido por un tiempo -. todos los documentos dicen que String.fromCharCode
espera una charcode
Unicode, mientras que en la práctica parece que ha funcionado para charCodes ASCII, pero que se creo debido a la necesidad de convertir a decimal del hexagonal, combinada con el hecho de que charCodes ASCII y charCodes Unicode decimales se superponen para las letras latinas ordinarios.
nombres clave de lectura mecánica indexados por código de clave
Hay relativamente pocos códigos clave por lo que simplemente una lista de los valores correspondientes en una matriz estática para que pudiera simplemente convertir el número en 65
A
usando keyboardMap[65]
No todos los códigos de tecla se asigna a un carácter imprimible así se devuelve alguna otra cadena de identificación.
Es posible que deba modificar la matriz para que se adapte a sus necesidades y simplemente puede volver cadenas vacías para todos los caracteres que no se preocupan de traducir. La siguiente matriz me permite determinar de forma rápida y fiable qué tecla se ha pulsado en cualquier entorno. Disfrutar!
// names of known key codes (0-255)
var keyboardMap = [
"", // [0]
"", // [1]
"", // [2]
"CANCEL", // [3]
"", // [4]
"", // [5]
"HELP", // [6]
"", // [7]
"BACK_SPACE", // [8]
"TAB", // [9]
"", // [10]
"", // [11]
"CLEAR", // [12]
"ENTER", // [13]
"ENTER_SPECIAL", // [14]
"", // [15]
"SHIFT", // [16]
"CONTROL", // [17]
"ALT", // [18]
"PAUSE", // [19]
"CAPS_LOCK", // [20]
"KANA", // [21]
"EISU", // [22]
"JUNJA", // [23]
"FINAL", // [24]
"HANJA", // [25]
"", // [26]
"ESCAPE", // [27]
"CONVERT", // [28]
"NONCONVERT", // [29]
"ACCEPT", // [30]
"MODECHANGE", // [31]
"SPACE", // [32]
"PAGE_UP", // [33]
"PAGE_DOWN", // [34]
"END", // [35]
"HOME", // [36]
"LEFT", // [37]
"UP", // [38]
"RIGHT", // [39]
"DOWN", // [40]
"SELECT", // [41]
"PRINT", // [42]
"EXECUTE", // [43]
"PRINTSCREEN", // [44]
"INSERT", // [45]
"DELETE", // [46]
"", // [47]
"0", // [48]
"1", // [49]
"2", // [50]
"3", // [51]
"4", // [52]
"5", // [53]
"6", // [54]
"7", // [55]
"8", // [56]
"9", // [57]
"COLON", // [58]
"SEMICOLON", // [59]
"LESS_THAN", // [60]
"EQUALS", // [61]
"GREATER_THAN", // [62]
"QUESTION_MARK", // [63]
"AT", // [64]
"A", // [65]
"B", // [66]
"C", // [67]
"D", // [68]
"E", // [69]
"F", // [70]
"G", // [71]
"H", // [72]
"I", // [73]
"J", // [74]
"K", // [75]
"L", // [76]
"M", // [77]
"N", // [78]
"O", // [79]
"P", // [80]
"Q", // [81]
"R", // [82]
"S", // [83]
"T", // [84]
"U", // [85]
"V", // [86]
"W", // [87]
"X", // [88]
"Y", // [89]
"Z", // [90]
"OS_KEY", // [91] Windows Key (Windows) or Command Key (Mac)
"", // [92]
"CONTEXT_MENU", // [93]
"", // [94]
"SLEEP", // [95]
"NUMPAD0", // [96]
"NUMPAD1", // [97]
"NUMPAD2", // [98]
"NUMPAD3", // [99]
"NUMPAD4", // [100]
"NUMPAD5", // [101]
"NUMPAD6", // [102]
"NUMPAD7", // [103]
"NUMPAD8", // [104]
"NUMPAD9", // [105]
"MULTIPLY", // [106]
"ADD", // [107]
"SEPARATOR", // [108]
"SUBTRACT", // [109]
"DECIMAL", // [110]
"DIVIDE", // [111]
"F1", // [112]
"F2", // [113]
"F3", // [114]
"F4", // [115]
"F5", // [116]
"F6", // [117]
"F7", // [118]
"F8", // [119]
"F9", // [120]
"F10", // [121]
"F11", // [122]
"F12", // [123]
"F13", // [124]
"F14", // [125]
"F15", // [126]
"F16", // [127]
"F17", // [128]
"F18", // [129]
"F19", // [130]
"F20", // [131]
"F21", // [132]
"F22", // [133]
"F23", // [134]
"F24", // [135]
"", // [136]
"", // [137]
"", // [138]
"", // [139]
"", // [140]
"", // [141]
"", // [142]
"", // [143]
"NUM_LOCK", // [144]
"SCROLL_LOCK", // [145]
"WIN_OEM_FJ_JISHO", // [146]
"WIN_OEM_FJ_MASSHOU", // [147]
"WIN_OEM_FJ_TOUROKU", // [148]
"WIN_OEM_FJ_LOYA", // [149]
"WIN_OEM_FJ_ROYA", // [150]
"", // [151]
"", // [152]
"", // [153]
"", // [154]
"", // [155]
"", // [156]
"", // [157]
"", // [158]
"", // [159]
"CIRCUMFLEX", // [160]
"EXCLAMATION", // [161]
"DOUBLE_QUOTE", // [162]
"HASH", // [163]
"DOLLAR", // [164]
"PERCENT", // [165]
"AMPERSAND", // [166]
"UNDERSCORE", // [167]
"OPEN_PAREN", // [168]
"CLOSE_PAREN", // [169]
"ASTERISK", // [170]
"PLUS", // [171]
"PIPE", // [172]
"HYPHEN_MINUS", // [173]
"OPEN_CURLY_BRACKET", // [174]
"CLOSE_CURLY_BRACKET", // [175]
"TILDE", // [176]
"", // [177]
"", // [178]
"", // [179]
"", // [180]
"VOLUME_MUTE", // [181]
"VOLUME_DOWN", // [182]
"VOLUME_UP", // [183]
"", // [184]
"", // [185]
"SEMICOLON", // [186]
"EQUALS", // [187]
"COMMA", // [188]
"MINUS", // [189]
"PERIOD", // [190]
"SLASH", // [191]
"BACK_QUOTE", // [192]
"", // [193]
"", // [194]
"", // [195]
"", // [196]
"", // [197]
"", // [198]
"", // [199]
"", // [200]
"", // [201]
"", // [202]
"", // [203]
"", // [204]
"", // [205]
"", // [206]
"", // [207]
"", // [208]
"", // [209]
"", // [210]
"", // [211]
"", // [212]
"", // [213]
"", // [214]
"", // [215]
"", // [216]
"", // [217]
"", // [218]
"OPEN_BRACKET", // [219]
"BACK_SLASH", // [220]
"CLOSE_BRACKET", // [221]
"QUOTE", // [222]
"", // [223]
"META", // [224]
"ALTGR", // [225]
"", // [226]
"WIN_ICO_HELP", // [227]
"WIN_ICO_00", // [228]
"", // [229]
"WIN_ICO_CLEAR", // [230]
"", // [231]
"", // [232]
"WIN_OEM_RESET", // [233]
"WIN_OEM_JUMP", // [234]
"WIN_OEM_PA1", // [235]
"WIN_OEM_PA2", // [236]
"WIN_OEM_PA3", // [237]
"WIN_OEM_WSCTRL", // [238]
"WIN_OEM_CUSEL", // [239]
"WIN_OEM_ATTN", // [240]
"WIN_OEM_FINISH", // [241]
"WIN_OEM_COPY", // [242]
"WIN_OEM_AUTO", // [243]
"WIN_OEM_ENLW", // [244]
"WIN_OEM_BACKTAB", // [245]
"ATTN", // [246]
"CRSEL", // [247]
"EXSEL", // [248]
"EREOF", // [249]
"PLAY", // [250]
"ZOOM", // [251]
"", // [252]
"PA1", // [253]
"WIN_OEM_CLEAR", // [254]
"" // [255]
];
Nota:.. La posición de cada valor de la matriz anterior es importante El
""
son marcadores de posición para códigos con valores desconocidos
Trate el siguiente fragmento de código usando este enfoque matriz de búsqueda estática ...
var keyCodes = [];
$("#reset").click(function() {
keyCodes = [];
$("#in").val("");
$("#key-codes").html("var keyCodes = [ ];");
$("#key-names").html("var keyNames = [ ];");
});
$(document).keydown(function(e) {
keyCodes.push(e.which);
updateOutput();
});
function updateOutput() {
var kC = "var keyCodes = [ ";
var kN = "var keyNames = [ ";
var len = keyCodes.length;
for (var i = 0; i < len; i++) {
kC += keyCodes[i];
kN += "'"+keyboardMap[keyCodes[i]]+"'";
if (i !== (len - 1)) {
kC += ", ";
kN += ", ";
}
}
kC += " ];";
kN += " ];";
$("#key-codes").html(kC);
$("#key-names").html(kN);
}
var keyboardMap = [
"", // [0]
"", // [1]
"", // [2]
"CANCEL", // [3]
"", // [4]
"", // [5]
"HELP", // [6]
"", // [7]
"BACK_SPACE", // [8]
"TAB", // [9]
"", // [10]
"", // [11]
"CLEAR", // [12]
"ENTER", // [13]
"ENTER_SPECIAL", // [14]
"", // [15]
"SHIFT", // [16]
"CONTROL", // [17]
"ALT", // [18]
"PAUSE", // [19]
"CAPS_LOCK", // [20]
"KANA", // [21]
"EISU", // [22]
"JUNJA", // [23]
"FINAL", // [24]
"HANJA", // [25]
"", // [26]
"ESCAPE", // [27]
"CONVERT", // [28]
"NONCONVERT", // [29]
"ACCEPT", // [30]
"MODECHANGE", // [31]
"SPACE", // [32]
"PAGE_UP", // [33]
"PAGE_DOWN", // [34]
"END", // [35]
"HOME", // [36]
"LEFT", // [37]
"UP", // [38]
"RIGHT", // [39]
"DOWN", // [40]
"SELECT", // [41]
"PRINT", // [42]
"EXECUTE", // [43]
"PRINTSCREEN", // [44]
"INSERT", // [45]
"DELETE", // [46]
"", // [47]
"0", // [48]
"1", // [49]
"2", // [50]
"3", // [51]
"4", // [52]
"5", // [53]
"6", // [54]
"7", // [55]
"8", // [56]
"9", // [57]
"COLON", // [58]
"SEMICOLON", // [59]
"LESS_THAN", // [60]
"EQUALS", // [61]
"GREATER_THAN", // [62]
"QUESTION_MARK", // [63]
"AT", // [64]
"A", // [65]
"B", // [66]
"C", // [67]
"D", // [68]
"E", // [69]
"F", // [70]
"G", // [71]
"H", // [72]
"I", // [73]
"J", // [74]
"K", // [75]
"L", // [76]
"M", // [77]
"N", // [78]
"O", // [79]
"P", // [80]
"Q", // [81]
"R", // [82]
"S", // [83]
"T", // [84]
"U", // [85]
"V", // [86]
"W", // [87]
"X", // [88]
"Y", // [89]
"Z", // [90]
"OS_KEY", // [91] Windows Key (Windows) or Command Key (Mac)
"", // [92]
"CONTEXT_MENU", // [93]
"", // [94]
"SLEEP", // [95]
"NUMPAD0", // [96]
"NUMPAD1", // [97]
"NUMPAD2", // [98]
"NUMPAD3", // [99]
"NUMPAD4", // [100]
"NUMPAD5", // [101]
"NUMPAD6", // [102]
"NUMPAD7", // [103]
"NUMPAD8", // [104]
"NUMPAD9", // [105]
"MULTIPLY", // [106]
"ADD", // [107]
"SEPARATOR", // [108]
"SUBTRACT", // [109]
"DECIMAL", // [110]
"DIVIDE", // [111]
"F1", // [112]
"F2", // [113]
"F3", // [114]
"F4", // [115]
"F5", // [116]
"F6", // [117]
"F7", // [118]
"F8", // [119]
"F9", // [120]
"F10", // [121]
"F11", // [122]
"F12", // [123]
"F13", // [124]
"F14", // [125]
"F15", // [126]
"F16", // [127]
"F17", // [128]
"F18", // [129]
"F19", // [130]
"F20", // [131]
"F21", // [132]
"F22", // [133]
"F23", // [134]
"F24", // [135]
"", // [136]
"", // [137]
"", // [138]
"", // [139]
"", // [140]
"", // [141]
"", // [142]
"", // [143]
"NUM_LOCK", // [144]
"SCROLL_LOCK", // [145]
"WIN_OEM_FJ_JISHO", // [146]
"WIN_OEM_FJ_MASSHOU", // [147]
"WIN_OEM_FJ_TOUROKU", // [148]
"WIN_OEM_FJ_LOYA", // [149]
"WIN_OEM_FJ_ROYA", // [150]
"", // [151]
"", // [152]
"", // [153]
"", // [154]
"", // [155]
"", // [156]
"", // [157]
"", // [158]
"", // [159]
"CIRCUMFLEX", // [160]
"EXCLAMATION", // [161]
"DOUBLE_QUOTE", // [162]
"HASH", // [163]
"DOLLAR", // [164]
"PERCENT", // [165]
"AMPERSAND", // [166]
"UNDERSCORE", // [167]
"OPEN_PAREN", // [168]
"CLOSE_PAREN", // [169]
"ASTERISK", // [170]
"PLUS", // [171]
"PIPE", // [172]
"HYPHEN_MINUS", // [173]
"OPEN_CURLY_BRACKET", // [174]
"CLOSE_CURLY_BRACKET", // [175]
"TILDE", // [176]
"", // [177]
"", // [178]
"", // [179]
"", // [180]
"VOLUME_MUTE", // [181]
"VOLUME_DOWN", // [182]
"VOLUME_UP", // [183]
"", // [184]
"", // [185]
"SEMICOLON", // [186]
"EQUALS", // [187]
"COMMA", // [188]
"MINUS", // [189]
"PERIOD", // [190]
"SLASH", // [191]
"BACK_QUOTE", // [192]
"", // [193]
"", // [194]
"", // [195]
"", // [196]
"", // [197]
"", // [198]
"", // [199]
"", // [200]
"", // [201]
"", // [202]
"", // [203]
"", // [204]
"", // [205]
"", // [206]
"", // [207]
"", // [208]
"", // [209]
"", // [210]
"", // [211]
"", // [212]
"", // [213]
"", // [214]
"", // [215]
"", // [216]
"", // [217]
"", // [218]
"OPEN_BRACKET", // [219]
"BACK_SLASH", // [220]
"CLOSE_BRACKET", // [221]
"QUOTE", // [222]
"", // [223]
"META", // [224]
"ALTGR", // [225]
"", // [226]
"WIN_ICO_HELP", // [227]
"WIN_ICO_00", // [228]
"", // [229]
"WIN_ICO_CLEAR", // [230]
"", // [231]
"", // [232]
"WIN_OEM_RESET", // [233]
"WIN_OEM_JUMP", // [234]
"WIN_OEM_PA1", // [235]
"WIN_OEM_PA2", // [236]
"WIN_OEM_PA3", // [237]
"WIN_OEM_WSCTRL", // [238]
"WIN_OEM_CUSEL", // [239]
"WIN_OEM_ATTN", // [240]
"WIN_OEM_FINISH", // [241]
"WIN_OEM_COPY", // [242]
"WIN_OEM_AUTO", // [243]
"WIN_OEM_ENLW", // [244]
"WIN_OEM_BACKTAB", // [245]
"ATTN", // [246]
"CRSEL", // [247]
"EXSEL", // [248]
"EREOF", // [249]
"PLAY", // [250]
"ZOOM", // [251]
"", // [252]
"PA1", // [253]
"WIN_OEM_CLEAR", // [254]
"" // [255]
];
#key-codes,
#key-names {
font-family: courier, serif;
font-size: 1.2em;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id="in" placeholder="Type here..." />
<button id="reset">Reset</button>
<br/>
<br/>
<div id="key-codes">var keyCodes = [ ];</div>
<div id="key-names">var keyNames = [ ];</div>
códigos clave vale la pena destacar
Letters A-Z: (65-90)
keyboardMap[65]; // A
...
keyboardMap[90]; // Z
dígitos 0-9: (48-57)
keyboardMap[48]; // 0
...
keyboardMap[57]; // 9
Número Pad 0-9: (96-105)
keyboardMap[96]; // NUMPAD0
...
keyboardMap[105]; // NUMPAD9
teclas de flecha: (37-40)
keyboardMap[37]; // LEFT
keyboardMap[38]; // UP
keyboardMap[39]; // RIGHT
keyboardMap[40]; // DOWN
Tab Clave: (9)
keyboardMap[9]; // TAB
Escribir clave: (13)
keyboardMap[13]; // ENTER
barra espaciadora Clave: (32)
keyboardMap[32]; // SPACE
sistema operativo específico clave (91) tecla de Windows (Windows) o Comando (Mac)
keyboardMap[91]; // OS_KEY
Alt Clave: (18)
keyboardMap[18]; // ALT
Key Control: (17)
keyboardMap[17]; // CONTROL
Shift Key: (16)
keyboardMap[16]; // SHIFT
tecla Caps Lock: (20)
keyboardMap[20]; // CAPS_LOCK
Sólo una nota importante: la respuesta aceptada anterior no funcionará correctamente para keyCode> = 144, es decir, punto, coma, guión, etc. Para aquellos que puedes usar un algoritmo más general:
let chrCode = keyCode - 48 * Math.floor(keyCode / 48);
let chr = String.fromCharCode((96 <= keyCode) ? chrCode: keyCode);
Si usted es curioso en cuanto a por qué, esto es al parecer necesario debido al comportamiento de la incorporada en el JS String.fromCharCode()
función. Para valores de keyCode <= 96
parece al mapa usando la función:
chrCode = keyCode - 48 * Math.floor(keyCode / 48)
Para valores de keyCode > 96
parece al mapa usando la función:
chrCode = keyCode
Si esto parece extraño comportamiento continuación well..I de acuerdo. Lamentablemente, sería muy lejos de ser la cosa más rara que he visto en el núcleo JS.
document.onkeydown = function(e) {
let keyCode = e.keyCode;
let chrCode = keyCode - 48 * Math.floor(keyCode / 48);
let chr = String.fromCharCode((96 <= keyCode) ? chrCode: keyCode);
console.log(chr);
};
<input type="text" placeholder="Focus and Type"/>
Estoy asumiendo que esto es para un juego o para un tipo de respuesta rápida de la aplicación de ahí el uso de keyDown de pulsación de tecla.
Editar : Dang! Mi error (gracias Media Luna fresca y David): jQuery (o incluso más bien los anfitriones DOM subyacentes) no no exponer el detalle de la WM_KEYDOWN y de otros eventos. Más bien pre-digerir estos datos y, en el caso de keyDown incluso en jQuery, obtenemos:
- event.keyCode de teclas que no sean de carácter
- event.charCode de teclas de caracteres
Tenga en cuenta que estas propiedades son los valores Unicode.
Tenga en cuenta, que no era capaz de encontrar una referencia authorititative a la de documentos jQuery, pero muchos ejemplos de buena reputación en la red refiero a estas dos propiedades.
El código siguiente, adaptado de alguna Java (no javascript) de la mina, por lo tanto, es totalmente equivocado ...
La siguiente información le dará las partes "interesantes" del código clave:
value = e.KeyCode;
repeatCount = value & 0xFF;
scanCode = (value >> 16) & 0xFF; // note we take the "extended bit" deal w/ it later.
wasDown = ((value & 0x4000) != 0); // indicate key was readily down (auto-repeat)
if (scanCode > 127)
// deal with extended
else
// "regular" character
Sé que esto es una vieja pregunta, pero me encontré con que hoy en día la búsqueda de un pre-envasados solución a este problema, y no ha encontrado nada que realmente conocí a mis necesidades.
Aquí es una solución de (sólo en inglés) que admite correctamente mayúsculas (desplazado), minúsculas, signos de puntuación, el número de teclado, etc.
Esto también permite una simple y sencilla identificación de los - y la reacción a - no-imprimible claves, como ESC, las Flechas, las teclas de Función, etc.
https://jsfiddle.net/5hhu896g/1/
keyboardCharMap and keyboardNameMap are the key to making this work
Gracias a DaveAlger para que me ahorro algunas escribir - y mucho descubrimiento! por medio de la Denominada Matriz de Claves.
Hace poco escribí un módulo llamado keysight que se traduce keypress
, keydown
y eventos keyup
en personajes y claves respectivamente.
Ejemplo:
element.addEventListener("keydown", function(event) {
var character = keysight(event).char
})
Para aquellos de ustedes que vinieron aquí en busca de los valores reales de caracteres Unicode para un código clave, como lo hice, aquí es una función para eso. Por ejemplo, dado el derecho código clave flecha Unicode Esta es la salida de la cadena de \u001B\u005B\u0043
visible
function toUnicode(theString) {
var unicodeString = '';
for (var i = 0; i < theString.length; i++) {
var theUnicode = theString.charCodeAt(i).toString(16).toUpperCase();
while (theUnicode.length < 4) {
theUnicode = '0' + theUnicode;
}
theUnicode = '\\u' + theUnicode;
unicodeString += theUnicode;
}
return unicodeString;
}
También puede utilizar la propiedad de sólo lectura key
. También respeta teclas especiales como cambio etc. y es apoyado por IE9.
Cuando se pulsa un carácter no imprimible o especial, el valor será el de la definida valores clave como 'Shift'
o 'Multiply'
.
- Teclado
event.key
- X ->
'x'
- Shift + X ->
'X'
- F5 ->
'F5'
Consulte este enlace Obtener código clave de pulsación de tecla y el valor de carbón para cualquier código de la llave
$('input#inp').keyup(function(e){
$(this).val(String.fromCharCode(e.keyCode));
$('div#output').html('Keycode : ' + e.keyCode);
});