2011-09-20 12 views
26

Eventuali duplicati:
How to catch enter keypress on textarea but not shift+enter?Come posso rilevare il tasto Maiusc + in javascript?

Come posso rilevare shift + tasto giù in JavaScript?

+7

Potresti aver usato quelle parole in più per dire a tutti quello che hai già provato. A proposito, rispondi alla tua domanda: http://stackoverflow.com/questions/6178431/how-to-catch-enter-keypress-on-textarea-but-not-shiftenter – Pablo

+2

oh beh ... per quello che vale : http://jsfiddle.net/3M6Xt/ –

+0

@rockinthesixstring eh, va bene. la risposta è fondamentalmente la fuori là: P –

risposta

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

Non c'è da meravigliarsi che la gente usi jQuery per questo. Amico, questo è un sacco di codice. –

+0

Tutto questo codice non è più necessario (più). Si prega di vedere l'altra risposta. –

101

event.shiftKey è un booleano. true se il tasto Maiusc viene premuto, in caso contrario, false. altKey e ctrlKey funzionano allo stesso modo.

Quindi, in pratica, è sufficiente rilevare il keydown normalmente con onkeydown e verificare tali proprietà in base alle esigenze.

+11

Penso che questo sia più informativo della risposta selezionata, in quanto descrive effettivamente il comportamento della funzionalità corretta, mentre l'OA presenta solo una serie di hack del browser per assicurarsi che questa funzionalità funzioni. – hoffmanc

Problemi correlati