2009-10-30 22 views
7

Estoy usando el evento de teclakeycode en el evento de tecla

Donde obtengo el código clave y lo convierto en código de caracteres.

Pero tengo un problema en el teclado es pulsar 2 da 50 y charCode como 2

Cuando pulso en 2 teclado numérico da 98 código clave, por lo que cuando convierto charCode a

Respuesta

1

podrás obtener el código de carácter en keypress caso
probar esto: http://www.w3.org/2002/09/tests/keys.html

utilizan siguiente código para convertir a carac ter:

var charCode = (evt.charCode) ? evt.charCode : evt.keyCode; 

this también pueden ser útiles como referencia códigos de teclas

2

solo vistazo a estas soluciones similar su requisito

y como referencia código clave use this

y código clave es depende del navegador check it

12

Eso está sucediendo porque Si está utilizando el miembro keyCode, por ejemplo, una minúscula 'a' y una mayúscula 'A' tienen el mismo código de clave, porque es la misma clave, pero un código de caracteres diferente porque el carácter resultante es diferente.

Para obtener el charCode, se debe utilizar el evento keypress, y obtener el miembro de event.charCode si está disponible, de lo contrario, se obtiene la event.keyCode que por IE, en el evento de pulsación de tecla tiene la información correcta.

Dale un vistazo a la siguiente example:

document.onkeypress = function (e) { 
    e = e || window.event; 
    var charCode = e.charCode || e.keyCode, 
     character = String.fromCharCode(charCode); 

    alert(character); 
}; 
+0

con este código: cuando escribo "2" I Get charCode 0; código clave 50; personaje 2; cuando escribo Shift-2 recibo lo mismo, pero en mi cuadro de texto aparece "@". onkeypress evento no parece saber si la tecla Shift está abajo .... – Michiel

+0

@CMS Muy informativo – Oliver

Cuestiones relacionadas