2011-08-10 15 views
65

Potrzebuję przechwycić naciśnięcie klawisza Enter w dowolnym momencie w dowolnym miejscu na stronie logowania. Rozpocznie próbę zalogowania.Przechwyć klucz Enter Naciśnięty gdziekolwiek na stronie

Jak to zrobić, używając jQuery? Czy powinienem połączyć go z tagiem body?

+0

proszę zobaczyć [ "Pytania powinny zawierać«znaczniki»w ich tytuły?"] (Http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles), gdzie konsensus brzmi "nie, nie powinni"! –

Odpowiedz

123
$(document).keypress(function(e) { 
    if(e.which == 13) { 
    // enter pressed 
    } 
}); 
+4

Próbowałem tego, co zauważyłem, że naciśnięcie klawisza nie jest wyzwalane dla klawiszy strzałek, ale keydown jest! – akotian

15

Zdarzenie keydown jest wywoływane po naciśnięciu klawisza.
Zdarzenie keypress jest uruchamiane po naciśnięciu klawisza, a ten klawisz zwykle powoduje wyświetlenie wartości znaku.

$(document).keydown(function(event) { 
    if (event.which === 13) { 
    // login code here 
    } 
}); 
+0

lub po prostu 'document.onkeydown' bez jquery ... – matanster

+0

Działa to lepiej niż' keypress'. Na przykład mogłem uzyskać 'keypress' do wykrycia, kiedy naciśnięto klawisz ESC. Ale "keydown" działa idealnie. Dziękuję Ci! –

Powiązane problemy