2010-11-03 23 views
19

Estoy tratando de captar el evento de presionar las teclas Retroceso y Eliminar utilizando javascript/jQuery con este tipo de código.Javascript e.keyCode no captura Backspace/Del en IE

$("textarea[name=txt]").keypress(function(e){ 
    var keycode = e.keyCode ? e.keyCode : e.which; 

    if(keycode == 8){ // backspace 
     // do somethiing 
     alert(keycode); 
    } 

    if(keycode == 46){ // delete 
     // do somethiing 
     alert(keycode); 
    } 

}); 

Estas líneas de código funcionan perfectamente en Firefox (3.6.12). Eso significa que la alerta aparece cuando se presiona Retroceso o Eliminar. Pero esto no funciona en Internet Explorer (8)

¿Alguien puede sugerirme una forma diferente de ver estos eventos de pulsación de teclas en Internet Explorer?

+1

[Esta página] (http://jimblackler.net/blog/?p=20) parece sugerir que debe utilizar el evento 'keydown' en lugar del evento' keypress'. ¿Es así de simple? – clarkf

Respuesta

25

Si quieres apoyar el IE y utiliza las teclas especiales (como delete y backspace) sugiere emplear keydown/keyup lugar.

teclas especiales

Explorador no dispara la pulsación de tecla caso de borrado, extremo, entran, escapar, teclas de función, casa, parte movible, PAGEUP/abajo y la lengüeta.

Si necesita detectar estas claves, hágase un favor y busque su código de clave onkeydown/up, e ignore onkeypress y charCode.

Usted puede leer más en problemas con el navegador transversales de Detecting keystrokes(Quirksmode).

-4

Código clave para retroceso tomará el valor = si ya tenemos algunos caracteres en un cuadro de texto.

El código de clave será = Si no hay caracteres en el cuadro de texto y estamos tratando de golpear Retroceso.

+2

¿No es 83 el carácter 's'? – kzh

Cuestiones relacionadas