Chciałbym sprawdzić, czy użytkownik nacisnął Enterprzy użyciu jQuery.
Jak to jest możliwe? Czy wymaga wtyczki?
EDYCJA: Wygląda na to, że muszę użyć tej keypress()
metody.
Chciałem się dowiedzieć, czy ktoś wie, czy występują problemy z przeglądarką związane z tym poleceniem - na przykład czy są jakieś problemy ze zgodnością przeglądarki, o których powinienem wiedzieć?
Odpowiedzi:
Cały sens jQuery polega na tym, że nie musisz się martwić różnicami w przeglądarce. Jestem pewien, że możesz bezpiecznie przejść enter13 lat we wszystkich przeglądarkach. Mając to na uwadze, możesz to zrobić:
źródło
$(window)
z IE) quirksmode.org/dom/events/keys.htmlNapisałem małą wtyczkę, aby ułatwić powiązanie zdarzenia „po naciśnięciu klawisza Enter”:
Stosowanie:
źródło
#input
się na<input>
boisko)$("#input").on("someevent","someselector",function () {})
Nie mogłem uruchomić kodu wysłanego przez @Paolo Bergantino do pracy, ale kiedy go zmieniłem na
$(document)
ie.which
zamiaste.keyCode
tego przekonałem się, że działa bezbłędnie.Link do przykładu na JS Bin
źródło
Przekonałem się, że jest to bardziej kompatybilne z różnymi przeglądarkami:
źródło
Możesz to zrobić za pomocą uchwytu zdarzenia „keydown” jquery
źródło
Użyj
event.key
i nowoczesny JS!lub bez jQuery:
Dokumenty Mozilla
Obsługiwane przeglądarki
źródło
Spędziłem trochę czasu wymyślając to rozwiązanie, mam nadzieję, że to komuś pomoże.
źródło
Istnieje metoda zdarzenia keypress () . Numer ascii klawisza Enter to 13 i nie zależy od używanej przeglądarki.
źródło
Niewielkie rozszerzenie powyższej odpowiedzi Andrei sprawia, że metoda pomocnika jest bardziej przydatna, gdy możesz również chcieć przechwycić zmodyfikowane naciśnięcia Enter (tj. Ctrl-Enter lub Shift-Enter). Na przykład ten wariant umożliwia wiązanie, takie jak:
aby przesłać formularz, gdy użytkownik naciśnie klawisz Ctrl-Enter, koncentrując się na obszarze tekstowym tego formularza.
(patrz także Ctrl + Enter jQuery w TEXTAREA )
źródło
W niektórych przypadkach może być konieczne pominięcie ENTERklawisza dla określonego obszaru strony, ale nie dla innych obszarów strony, takich jak strona poniżej, która zawiera nagłówek
<div>
z polem WYSZUKIWANIA .Trochę mi zajęło wymyślenie, jak to zrobić, i zamieszczam tutaj prosty, ale kompletny przykład dla społeczności.
Link do placu zabaw JSFiddle :
[Submit]
Przycisk nic nie robi, ale naciśnięcie ENTERjednego z elementów sterujących pola tekstowego nie spowoduje przesłania formularza.źródło
Spróbuj wykryć naciśnięty klawisz Enter.
Zobacz demo @ wykryć naciśnij klawisz Enter na klawiaturze
źródło
Ponieważ
keypress
wydarzenie nie jest objęte żadną oficjalną specyfikacją, rzeczywiste zachowanie występujące podczas jego używania może się różnić w zależności od przeglądarki, wersji przeglądarki i platformy.Mam nadzieję, że się przyda!
źródło
keypress
nie ma w specyfikacji (już), jest to, że została uznana za przestarzałą ( MDN ).Łatwym sposobem na wykrycie, czy użytkownik nacisnął klawisz Enter, jest użycie numeru klucza, aby wprowadzić numer klucza = 13, aby sprawdzić wartość klucza w urządzeniu
naciskając klawisz Enter otrzymasz wynik jako 13. Używając wartości klucza, możesz wywołać funkcję lub zrobić cokolwiek zechcesz
jeśli chcesz wycelować w przycisk po naciśnięciu klawisza Enter, możesz użyć kodu
Mam nadzieję, że to pomoże
źródło
Myślę, że najprostszą metodą byłoby użycie javacript waniliowy :
źródło
źródło
źródło
Kiedyś
$(document).on("keydown")
.W niektórych przeglądarkach
keyCode
nie jest obsługiwany. To samo z,which
więc jeślikeyCode
nie jest obsługiwane, musisz użyćwhich
i odwrotnie.źródło