Chciałbym móc użyć Tabklawisza w polu tekstowym do tabulacji czterech spacji. Tak jak teraz, klawisz Tab przeskakuje mój kursor do następnego wejścia.
Czy istnieje JavaScript, który przechwyci klawisz Tab w polu tekstowym, zanim pojawi się w interfejsie użytkownika?
Rozumiem, że niektóre przeglądarki (np. FireFox) mogą na to nie pozwalać. A może niestandardowa kombinacja Shiftklawiszy Tab, taka jak + lub Ctrl+ Q?
javascript
user-interface
Seibar
źródło
źródło
Odpowiedzi:
Nawet jeśli przechwycisz
keydown
/keyup
event, są to jedyne zdarzenia uruchamiane przez klawisz tabulatora, nadal potrzebujesz sposobu, aby zapobiec wystąpieniu domyślnej akcji, przechodzenia do następnego elementu w kolejności tabulacji.W przeglądarce Firefox możesz wywołać
preventDefault()
metodę na obiekcie zdarzenia przekazanym do modułu obsługi zdarzenia. W IE musisz zwrócić false z uchwytu zdarzenia. Biblioteka JQuery udostępniapreventDefault
metodę na swoim obiekcie zdarzenia, która działa w IE i FF.źródło
keycode
8
?Wolałbym, aby wcięcie tabulatora nie działało, niż przerywanie tabulacji między elementami formularza.
Jeśli chcesz wprowadzić wcięcie w celu umieszczenia kodu w polu Markdown, użyj Ctrl+ K(lub ⌘K na Macu).
Jeśli chodzi o faktyczne zatrzymywanie akcji, jQuery (którego używa Stack Overflow) zatrzyma bulgotanie zdarzenia, gdy zwrócisz false z wywołania zwrotnego zdarzenia. Ułatwia to pracę z wieloma przeglądarkami.
źródło
Poprzednia odpowiedź jest w porządku, ale jestem jednym z tych facetów, którzy zdecydowanie sprzeciwiają się mieszaniu zachowania z prezentacją (umieszczanie JavaScript w moim HTML), więc wolę umieścić logikę obsługi zdarzeń w moich plikach JavaScript. Ponadto nie wszystkie przeglądarki implementują zdarzenie (lub e) w ten sam sposób. Możesz chcieć sprawdzić przed uruchomieniem dowolnej logiki:
źródło
Odradzałbym zmianę domyślnego zachowania klucza. Robię jak najwięcej bez dotykania myszy, więc jeśli mój klawisz tabulacji nie przejdzie do następnego pola formularza, będę bardzo zdenerwowany.
Klawisz skrótu może być jednak przydatny, zwłaszcza w przypadku dużych bloków kodu i zagnieżdżania. Shift-TAB to zła opcja, ponieważ normalnie przenosi mnie do poprzedniego pola w formularzu. Może byłby możliwy nowy przycisk w edytorze WMD do wstawiania TAB-a kodu z klawiszem skrótu?
źródło
jest problem w najlepszej odpowiedzi udzielonej przez ScottKoon
tutaj jest to
Powinien być
Z tego powodu nie działa w IE. Mając nadzieję, że ScottKoon zaktualizuje kod
źródło
W Chrome na Macu alt-tab wstawia znak tabulacji do
<textarea>
pola.Tu jest jeden: . Maleńki!
źródło