2011-09-20 20 views
26

Powiel możliwe:
How to catch enter keypress on textarea but not shift+enter?Jak mogę wykryć klawisz shift + w javascript?

jaki sposób można wykryć Shift + klawisz w dół w JavaScript?

+7

Mogłeś użyć tych dodatkowych słów, by powiedzieć wszystkim, co już wypróbowałeś. To odpowiada na twoje pytanie, przy okazji: http://stackoverflow.com/questions/6178431/how-to-catch-enter-keypress-on-textarea-but-not-shiftenter – Pablo

+2

oh cóż ... za to, co jest warte : http://jsfiddle.net/3M6Xt/ –

+0

@rockinthesixstring eh, w porządku. Odpowiedź jest zasadniczo tam: P –

Odpowiedz

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

Nic dziwnego, że ludzie używają jQuery do tego. Człowieku, to dużo kodu. –

+0

Cały ten kod nie jest już potrzebny (więcej). Zobacz drugą odpowiedź. –

101

event.shiftKey jest wartością logiczną. true jeśli naciśnięty jest klawisz Shift, false, jeśli nie. altKey i ctrlKey działają w ten sam sposób.

W zasadzie wystarczy wykryć klucz pęknięcia jak zwykle przy pomocy onkeydown i sprawdzić te właściwości w razie potrzeby.

+11

Myślę, że ten jest bardziej pouczający niż wybrana odpowiedź, ponieważ faktycznie opisuje zachowanie właściwej funkcjonalności, podczas gdy OA prezentuje tylko kilka hacków przeglądarek, aby upewnić się, że ta funkcjonalność działa. – hoffmanc

Powiązane problemy