Jak automatycznie ustawić fokus na pole tekstowe podczas ładowania strony internetowej?
Czy istnieje tag HTML, aby to zrobić, czy też musi to być zrobione przez JavaScript?
javascript
html
Mark Biek
źródło
źródło
Odpowiedzi:
Jeśli używasz jquery:
lub prototyp:
lub zwykły javascript:
pamiętaj jednak, że spowoduje to zastąpienie innych modułów obsługi ładunku, więc poszukaj metody addLoadEvent () w Google, aby w bezpieczny sposób zamiast zastępować dołączać moduły obsługi ładowania.
źródło
W HTML istnieje
autofocus
atrybut dla wszystkich pól formularza. W Dive Into HTML 5 znajduje się dobry samouczek . Niestety obecnie nie jest obsługiwany przez wersje IE mniejsze niż 10.Aby użyć atrybutu HTML 5 i wrócić do opcji JS:
Nie są wymagane żadne moduły obsługi jQuery, onload ani zdarzeń, ponieważ JS znajduje się poniżej elementu HTML.
Edycja: kolejną zaletą jest to, że w niektórych przeglądarkach działa on z wyłączoną obsługą JavaScript i możesz usunąć JavaScript, jeśli nie chcesz obsługiwać starszych przeglądarek.
Edycja 2: Firefox 4 obsługuje teraz
autofocus
atrybut, pozostawiając IE bez obsługi.źródło
autofocus="aufofocus"
? Wszystkie linki podałeś po prostu powiedzieć, aby dodać atrybut:autofocus
.attribute="value"
przypadku atrybutów boolowskich. HTML5 pojawił się wraz z „pustą składnią atrybutu” i porzuciliśmy nadmiarowość. Teraz możemy zrobić<input checked disabled autofocus data-something>
Musisz użyć javascript:
@Ben zauważa, że nie należy dodawać takich programów obsługi zdarzeń. Chociaż to kolejne pytanie, zaleca skorzystanie z tej funkcji:
Następnie umieść wywołanie addLoadEvent na swojej stronie i odwołaj się do funkcji, która ustawi fokus na żądane pole tekstowe.
źródło
Po prostu wpisz autofokus w polu tekstowym. To jest proste i działa tak:
Mam nadzieję że to pomoże.
źródło
Możesz to łatwo zrobić używając jquery w następujący sposób:
wywołując tę funkcję w
$(document).ready()
.Oznacza to, że ta funkcja zostanie wykonana, gdy DOM będzie gotowy.
Więcej informacji na temat funkcji READY można znaleźć pod adresem : http://api.jquery.com/ready/
źródło
Używając zwykłego vanilla html i javascript
Dla tych, którzy używają platformy .net i asp.net 2.0 lub nowszej, jest to trywialne. Jeśli używasz starszych wersji frameworka, musisz napisać trochę javascript, podobnie jak powyżej.
W programie obsługi OnLoad (zazwyczaj page_load, jeśli używasz szablonu strony stockowej dostarczonego z programem Visual Studio) możesz użyć:
DO#
VB.NET
(* Uwaga: Usunąłem znak podkreślenia z nazwy funkcji, która jest generalnie Page_Load, ponieważ w bloku kodu odmówił prawidłowego renderowania! Nie widziałem w dokumentacji znaczników, jak uzyskać podkreślenia, aby renderować bez znaku zmiany znaczenia.)
Mam nadzieję że to pomoże.
źródło
IMHO, najczystszym sposobem na wybranie pierwszego, widocznego, włączonego pola tekstowego na stronie, jest użycie jQuery i zrobienie czegoś takiego:
Mam nadzieję, że to pomoże ...
Dzięki...
źródło
źródło
Ogólnie radziłbym nie kraść fokusu z paska adresu. ( Jeff już o tym mówił. )
Załadowanie strony internetowej może zająć trochę czasu, co oznacza, że zmiana fokusu może nastąpić po dłuższym czasie od wpisania adresu URL pae przez użytkownika. Wtedy mógł zmienić zdanie i wrócić do wpisywania adresów URL, podczas gdy ty będziesz ładować swoją stronę i kraść fokus, aby umieścić ją w polu tekstowym.
To jedyny powód, dla którego usunąłem Google z mojej strony początkowej.
Oczywiście, jeśli kontrolujesz sieć (sieć lokalna) lub jeśli celem zmiany jest rozwiązanie ważnego problemu z użytecznością, zapomnij o wszystkim, co właśnie powiedziałem :)
źródło
Miałem nieco inny problem. Chciałem
autofocus
, ale chciałem, żebyplaceholder
tekst pozostał w różnych przeglądarkach. Niektóre przeglądarki ukrywałyplaceholder
tekst, gdy tylko pole było skoncentrowane, inne zachowywały go. Musiałem albo uzyskać symbole zastępcze pozostające w różnych przeglądarkach, co ma dziwne efekty uboczne, albo przestać ich używaćautofocus
.Więc nasłuchiwałem pierwszego klucza wpisanego względem znacznika body i przekierowałem ten klucz do docelowego pola wejściowego. Następnie wszystkie zaangażowane programy obsługi zdarzeń zostają zabite, aby zachować porządek.
https://jsfiddle.net/b9chris/qLrrb93w/
źródło
Możliwe jest ustawienie
autofocus
na elementach wejściowychźródło
Jeśli korzystasz z ASP.NET, możesz użyć
w kodzie na serwerze, który doda odpowiedni JavaScript do strony.
Inne struktury po stronie serwera mogą mieć równoważną metodę.
źródło
Użyj poniższego kodu. U mnie to działa
źródło