Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/05/2009, 10:07
Avatar de zerokilled
zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 9 meses
Puntos: 1485
Respuesta: Teclado numerico con FF no me funciona !!!

Cita:
keyCode
For keyboard events, keyCode specifies the Unicode character code generated by the key that was struck.

Javascript: The Definitive Guide 4th edition
traduccion: para eventos del teclado, keyCode indica el caracter Unicode generado por la tecla presionada.

no obstante yo pienso un tanto diferente. la tecla presionada no va necesariamente pareada con la representacion Unicode. en mi opinion, el numero que representa keyCode va a la par de acuerdo al layout del teclado. de modo que ciertas teclas como CTRL, ALT, SHIFT, HOME, END, PAGE UP, PAGE DOWN, INSERT, DELETE, etc. representan caracteres que realmente no se han presionado en el teclado. y lo mismo sucede con los diferentes layouts que integra el teclado: QWERTY y NUMBER PAD. por ejemplo, la tecla '1' en el layout QWERTY y la tecla '1' en el layout NUMBER PAD representan diferentes unicode.

pienso que esa es la parte que confunde a las gentes. naturalmente pensamos que al tener dos o mas teclas con el mismo significado humano, entendemos que asi mismo lo interpreta el sistema. a continuacion un script que representa el valor de keyCode y su representacion unicode cuando presionamos una tecla.
Código:
<head><script type="text/javascript">
document.onkeydown = function(evt){
evt = evt || event;
document.getElementById("keycode").innerHTML = evt.keyCode;
document.getElementById("unicode").innerHTML = String.fromCharCode(evt.keyCode);
evt.preventDefault? evt.preventDefault(): evt.returnValue = false;
}
</script>
<style type="text/css">
span{
font-family:monospace;
}
</style>
</head><body>
Keycode: <span id="keycode"> </span><br />
Unicode: <span id="unicode"> </span>
</body>
por tanto, la solucion en tu caso seria
Código:
if(tecla == 49 || tecla == 97){...}
if(tecla == 50 || tecla == 98){...}
if(tecla == 48 || tecla == 96){...}

Última edición por zerokilled; 22/05/2009 a las 10:13