2012-05-31 20 views
5

Sto provando a sviluppare un plug-in jQuery per eseguire un'azione quando l'utente immette una frase chiave specifica.Combina pressione tasti e chiave - jQuery

Ad esempio, desidero associare "HELLO" alla chiave.

var controllerKey = []; 
$(window).keyup(function(evt) { 
    var code = evt.keyCode ? evt.keyCode : evt.which; 
    controllerKey.push(code); 
} 
[...] 

Poi, paragono la mia controllerKey con la mia stringa "CIAO" (grazie a str.charCodeAt()) e alcune altre cose, ma questo non è importante qui. A questo punto tutto funziona correttamente.

Il mio problema succede quando voglio abbinare "ciao" (in realtà quando la stringa aveva qualche maiuscolo). Ho visto sui forum che keyup o keydown non fanno alcuna differenza.

Quindi uso il tasto di pressione che lo gestisce molto bene ma il tasto di pressione non mi consente di abbinare i tasti freccia e quindi uno (in Chrome).

Desidero sapere se è possibile combinare pressione di tasti e chiavi (solo quando la pressione di un tasto non corrisponde all'evento).

Grazie in anticipo.

+0

Inseriscono questa frase all'interno di un input? Inoltre, citi il ​​tuo problema, stai confrontando stringhe di diversi casi e poi stai chiedendo di keypress e keyup? – lucuma

+0

No. È un plugin per fare come un "codice konami" ma con la password di tua scelta. Sto confrontando la prima stringa (frase chiave) con l'input dell'utente –

+0

Penso di essere troppo vecchio per sapere quale codice di Konomi è, tuttavia, ho fornito una risposta su come combinare entrambi gli eventi .. – lucuma

risposta

9

Si possono combinare in questo modo:

$(window).on('keyup keypress', function(e) { 
    if (e.type=="keyup") { 

    } else { 
     // it is keypress 
    } 
}); 
+0

Di conseguenza puoi facilmente confrontare le stringhe con s.toUpperCase() == t.toUpperCase() – lucuma

+0

La tua risposta mi aiuterà. Grazie. (Non voglio usare upperCase per il confronto perché voglio mantenere queste informazioni) –

+0

alcun motivo per questo non funziona su IE? – RMiranda

2

È possibile utilizzare un input nascosto e eventi chiave al fine di avere caso cross browser confronto sensibile.

Problemi correlati