2010-12-11 14 views

Respuesta

19

El evento "pulsación de tecla" es (en su forma original, es decir, y en Safari/Chrome) alrededor de un carácter real que se añade a un campo de texto. La tecla de retroceso claramente no agrega un nuevo carácter al valor del campo, por lo que no causa ningún evento de pulsación de tecla.

Firefox y Opera son un poco más quisquillosos a la hora de generar eventos de mecanografía.

PPK (quirksmode) considers the IE and Webkit behaviors to be the sensible ones, y estoy muy de acuerdo.

+0

Puede ser sensato, pero disminuye la utilidad del evento IMO. Tal vez es solo un hábito, pero a menudo uso la tecla presionar (en otros idiomas, donde el evento se dispara si la tecla tiene un valor ASCII) atrapar la tecla BS para hacer cosas como desactivar botones cuando el usuario respalda todo el texto de un cuadro de entrada . – BobRodes

19

Intente utilizar las funciones keydown y keyup en su lugar para IE.

Javascript e.keyCode doesn't catch Backspace/Del in IE

+2

exactamente vea esto http://jsfiddle.net/EZqMA/ –

+0

Ese es un sitio realmente genial, Eric. Aprendí algo hoy. – mdarwi

+1

@Eric IMO es mejor utilizar el evento 'keyup' que ocurre después de que se suelta la tecla y el' .value' devolverá el nuevo valor. –

0

El onKeyUp solo hará todo la detección tecla del teclado en cromo ..

Cuestiones relacionadas