Nie wydaje się, że po naciśnięciu klawisza Backspace naciśnięto klawisze jQuery, keydown lub keypress. Jak zatrzymałbym naciśnięcie klawisza Backspace?Jak złapać klucz Backspace za pomocą jQuery?
Odpowiedz
spróbować tego:
$('html').keyup(function(e){if(e.keyCode == 8)alert('backspace trapped')})
sprawdź także 46 (usuń) – andufo
Działa, ale nie możesz w ten sposób pokazać okna modalnego i przestać wracać do poprzedniej strony. –
Wypróbuj e.preventDefault(), A NASTĘPNIE spraw, aby to było nieprzyjemne :) –
Do zatrzymania klawisza Backspace można użyć normalnego javascriptu. Możesz użyć metody event.keyCode. Kod dostępu jest 8, więc kod będzie wyglądał mniej więcej tak:
if (event.keyCode == 8) {
// Do stuff...
}
Jeśli chcesz sprawdzić zarówno dla [usunięcia] (46), jak również [Backspace] (8) klawisze, użyj następujących :
if (event.keyCode == 8 || event.keyCode == 46) {
// Do stuff...
}
Działa na tej samej idei, jak wyżej, ale uogólniając trochę. Ponieważ backspace powinien działać poprawnie na elementach wejściowych, ale nie powinien działać, jeśli fokus jest akapitem lub czymś, ponieważ jest tam, gdzie strona ma tendencję do powrotu do poprzedniej strony w historii.
$('html').on('keydown' , function(event) {
if(! $(event.target).is('input')) {
console.log(event.which);
//event.preventDefault();
if(event.which == 8) {
// alert('backspace pressed');
return false;
}
}
});
return false => oba zdarzenia.preventDefault i event.stopPropagation są aktywne.
upvote dla Keydown zamiast keyup. –
Domyślnym zachowaniem backspace w większości przeglądarek jest powrót do poprzedniej strony. Jeśli nie chcesz, aby nie tego zachowania, upewnij się, że połączenie preventDefault()
. Jednakże, jak nawiązywał do OP, jeśli zawsze nazywasz to preventDefault()
, uniemożliwisz również usuwanie rzeczy w polach tekstowych. Poniższy kod ma rozwiązanie dostosowane od this answer.
Ponadto, zamiast używać zakodowanych na klucz wartości keyCode (niektóre wartości zmieniają się w zależności od przeglądarki, chociaż nie jest to prawdą w przypadku Backspace lub Delete), jQuery has keyCode constants już zdefiniowano. Dzięki temu Twój kod staje się bardziej czytelny i dba o wszelkie niespójności kluczy kluczowych.
To obsługuje większość przypadków, ale chcę zapobiec ponownemu włączeniu Wybierz i na niektórych typach wejść, takich jak radio lub pole wyboru, więc usunąłem "SELECT" i dodałem test na 'e.target.type'. Do tej pory mam te typy wejściowe 'var rxt =/radio | button | checkbox | image | reset | submit/i;' Kolor może być także jednym z wykluczeń, ale może to być specyficzne dla przeglądarki. – peater
- 1. Rozpoznawanie backspace i spacji za pomocą jQuery
- 2. Jak zakazać klucz Backspace w WPF
- 3. Jak złapać przepełnienie stosu za pomocą pthread?
- 4. Jak zdobyć klucz publiczny za pomocą PyOpenSSL?
- 5. złapać wszystkie żądania ajax w jquery
- 6. JQuery złapać dowolny błąd ajax
- 7. tinymce v4 jquery: jak złapać onkeyup?
- 8. Wyłącz backspace i usuń klucz z javascript w IE
- 9. Lokalizacja za pomocą JQuery?
- 10. Bash hashmap za pomocą cytatu jako klucz
- 11. Jak napisać zdarzenie onshow za pomocą javascript/jquery?
- 12. Jak owinąć część tekstu za pomocą rozpiętości za pomocą jQuery?
- 13. Jak przyciąć obraz za pomocą php za pomocą jquery imgAreaSelect?
- 14. Jak złapać TRTTIParamter za wartość domyślną
- 15. Przekierowanie za pomocą jQuery
- 16. Nieprawidłowy klucz API dostarczony za pomocą Firebase
- 17. Określ klucz podstawowy tabeli za pomocą TSQL
- 18. Załaduj klucz prywatny ręcznie za pomocą ssh
- 19. Jak - przechowywać klucz pary wartości w tablica dwuwymiarowa i HashTable za pomocą JQuery?
- 20. Jak przetwarzać JSON za pomocą jquery?
- 21. Jak mogę odkodować URL za pomocą jQuery?
- 22. Jak zmienić atrybut danych za pomocą jQuery?
- 23. Jak symulować składanie formularza za pomocą jQuery?
- 24. Jak ukryć kursor myszy za pomocą jquery
- 25. Jak wywołać funkcję jquery za pomocą href
- 26. Jak uzyskać aktualną datę za pomocą jquery?
- 27. Jak dołączyć plik php za pomocą Jquery?
- 28. Jak uzyskać nazwę obrazu za pomocą jQuery?
- 29. Jak zmienić pozycję elementu za pomocą jQuery
- 30. Jak usunąć wszystkie klasy za pomocą jQuery?
Aby wyjaśnić, chcę pułapkę po naciśnięciu klawisza Backspace i wykonać akcję. Zmieniam stan niektórych przycisków na stronie po usunięciu ostatniego znaku z pola tekstowego. Dlatego nadal chcę, aby klawisz Backspace wykonywał normalne działanie. – ChrisP
To nie prawda. Pojawia się w metodach keyup i keydown. Tylko nie pojawia się w naciśnięciu klawisza. – Line
@RickSmith Nie zgadzam się. Pytanie, do którego się odnosiłeś, dotyczyło JavaScript, podczas gdy OP tutaj pyta w jQuery. Może istnieć jakiś powód, dla którego ktoś chciałby uzyskać odpowiedź w ten czy inny sposób. –