2011-09-20 13 views
26

Duplicar posible:
How to catch enter keypress on textarea but not shift+enter?¿Cómo puedo detectar mayúsculas y minúsculas en javascript?

¿Cómo puedo detectar shift + tecla abajo en JavaScript?

+7

Podría haber usado esas palabras adicionales para decirles a todos lo que ya ha intentado. Esto responde su pregunta, por cierto: http://stackoverflow.com/questions/6178431/how-to-catch-enter-key-on-textarea-but-not-shiftenter – Pablo

+2

bueno ... por lo que vale : http://jsfiddle.net/3M6Xt/ –

+0

@rockinthesixstring eh, está bien. la respuesta está básicamente afuera: P –

Respuesta

30
var onkeydown = (function (ev) { 
    var key; 
    var isShift; 
    if (window.event) { 
    key = window.event.keyCode; 
    isShift = !!window.event.shiftKey; // typecast to boolean 
    } else { 
    key = ev.which; 
    isShift = !!ev.shiftKey; 
    } 
    if (isShift) { 
    switch (key) { 
     case 16: // ignore shift key 
     break; 
     default: 
     alert(key); 
     // do stuff here? 
     break; 
    } 
    } 
}); 
+2

No es de extrañar que las personas usen jQuery para esto. Hombre, eso es mucho código. –

+0

Todo este código no es necesario (nunca más). Por favor mira la otra respuesta. –

101

event.shiftKey es un booleano. true si se presiona la tecla Shift, false si no. altKey y ctrlKey funcionan de la misma manera.

Así que, básicamente, solo necesita detectar la tecla de acceso de forma normal con onkeydown, y verifique esas propiedades según sea necesario.

+11

Creo que este es más informativo que la respuesta seleccionada, ya que en realidad describe el comportamiento de la funcionalidad adecuada, mientras que el OA solo presenta una serie de ataques de navegador para asegurarse de que esta funcionalidad funcione. – hoffmanc

Cuestiones relacionadas