event ejemplo charcode javascript keycode

javascript - ejemplo - keycode jquery



Determine si JavaScript e.keyCode es un carácter imprimible(sin control) (3)

Simplemente me gustaría saber el rango (s) de los keyCode de keyCode de JavaScript que corresponden a caracteres tipificables; o alternativamente, el rango de caracteres no controlables (control) como retroceso, escape, comando, cambio, etc. para que pueda ignorarlos.

La razón por la que pregunto es al llamar a String.fromCharCode() está generando caracteres impares para las teclas de control. Por ejemplo, obtengo "[" para el comando izquierdo, "%" para la flecha izquierda. Raro como eso.



Keydown le dará el KeyCode de la tecla presionada, sin ninguna modificación.

$("#keypresser").keydown(function(e){ var keycode = e.keyCode; var valid = (keycode > 47 && keycode < 58) || // number keys keycode == 32 || keycode == 13 || // spacebar & return key(s) (if you want to allow carriage returns) (keycode > 64 && keycode < 91) || // letter keys (keycode > 95 && keycode < 112) || // numpad keys (keycode > 185 && keycode < 193) || // ;=,-./` (in order) (keycode > 218 && keycode < 223); // [/]'' (in order) return valid; });

Solo las teclas numéricas, las teclas de letras y la barra espaciadora tendrán códigos clave que se correlacionan con String.fromCharCode ya que utiliza valores de Unicode.

La pulsación de tecla será la representación charCode del texto ingresado. Tenga en cuenta que este evento no se activará si no se "imprime" ningún texto como resultado de la pulsación de la tecla.

$("#keypresser").keypress(function(e){ var charcode = e.charCode; var char = String.fromCharCode(charcode); console.log(char); });

http://jsfiddle.net/LZs2D/1/ demostrará cómo funcionan estos.

KeyUp se comporta de manera similar a KeyDown.


Solo para el fondo, el evento "pulsación de tecla" le dará una propiedad charCode cada vez que presione una tecla de carácter.

Editor.addEventListener(''keypress'', function(event){ if (event.charCode) { //// character key console.log( String.fromCharCode(event.charCode) ); /// convert charCode to intended character. } else { //// control key }

Sin embargo, el evento de "pulsación de tecla" no captura cada pulsación de tecla, varias teclas se activan antes del evento de "pulsación de tecla".

Por el contrario, el evento "keydown" capturará cada pulsación de tecla, pero no tiene una propiedad charCode . Entonces, ¿cómo podemos saber si es una clave de carácter? La comprobación en cada pulsación de tecla si el KeyCode está dentro de los límites inferior y superior para múltiples rangos no es óptima de manera óptima. Sospecho que también hay problemas para los personajes fuera del rango ASCII.

Mi enfoque es verificar la duración de la propiedad "clave" del evento. La propiedad "clave" es una alternativa a "keyCode" para determinar qué tecla se presionó. Para las teclas de control , la propiedad "clave" es descriptiva (por ejemplo, "flecha derecha", "F12", "retorno", etc.). Para las claves de caracteres , la propiedad "clave" para una clave de caracteres es solo el carácter (por ejemplo, "a", "A", "~", "/", etc.). Por lo tanto, para cada clave de caracteres, la longitud de la propiedad "clave" tendrá una longitud de 1; mientras que los caracteres de control tendrán una longitud mayor que 1.

Editor.addEventListener(''keydown'', function(event){ if (event.key.length == 1){ //// character key } else { //// control key } })