HTML5 wprowadził placeholder
atrybut na input
elementach, który umożliwia wyświetlanie wyszarzonego domyślnego tekstu.
Niestety Internet Explorer, w tym IE 9, nie obsługuje tego.
Istnieje już kilka skryptów symulatorów zastępczych. Zwykle działają poprzez umieszczenie domyślnego tekstu w polu wejściowym, nadanie mu szarego koloru i usunięcie go ponownie, gdy tylko zaznaczysz pole wejściowe.
Wadą tego podejścia jest to, że tekst zastępczy znajduje się w polu wejściowym. A zatem:
- skrypty nie mogą łatwo sprawdzić, czy pole wejściowe jest puste
- przetwarzanie po stronie serwera musi sprawdzać wartość domyślną, aby nie wstawiać symbolu zastępczego do bazy danych.
Chciałbym mieć rozwiązanie, w którym tekst zastępczy nie znajduje się w samym wejściu.
Z mojego doświadczenia wynika, że najlepszy jest https://github.com/mathiasbynens/jquery-placeholder (zalecane przez html5please.com ). http://afarkas.github.com/webshim/demos/index.html ma również dobre rozwiązanie wśród znacznie obszerniejszej biblioteki wypełnień.
źródło
Dzięki implementacji jQuery możesz ŁATWO usunąć wartości domyślne, gdy nadejdzie czas na przesłanie. Poniżej przykład:
Wiem, że szukasz nakładki, ale może wolisz łatwość tej trasy (teraz wiedząc, co napisałem powyżej). Jeśli tak, to napisałem to dla swoich własnych projektów i działa naprawdę fajnie (wymaga jQuery) i zajmuje tylko kilka minut, aby wdrożyć całą witrynę. Na początku oferuje szary tekst, jasnoszary, gdy jest ostry, i czarny podczas pisania. Oferuje również tekst zastępczy, gdy pole wejściowe jest puste.
Najpierw skonfiguruj formularz i umieść atrybuty zastępcze w tagach wejściowych.
Po prostu skopiuj ten kod i zapisz go jako placeholder.js.
Używać tylko na jednym wejściu
Oto, w jaki sposób zalecam wdrożenie go we wszystkich polach wejściowych w witrynie, gdy przeglądarka nie obsługuje atrybutów zastępczych HTML5:
źródło
Po wypróbowaniu kilku sugestii i zauważeniu problemów w IE, oto ten, który działa:
https://github.com/parndt/jquery-html5-placeholder-shim/
Co mi się podobało - po prostu dołącz plik js. Nie ma potrzeby inicjowania tego ani niczego.
źródło
Poniższe rozwiązanie wiąże się z wejściowymi elementami tekstowymi z atrybutem symbolu zastępczego. Emuluje zachowanie symbolu zastępczego tylko dla IE i czyści pole wartości danych wejściowych po przesłaniu, jeśli nie zostanie zmienione.
Dodaj ten skrypt, a IE wydaje się obsługiwać symbole zastępcze HTML5.
źródło
Proponuję prostą funkcję:
Aby go użyć, nazwij to w ten sposób:
źródło
Korzystając z tej metody znalazłem dość proste rozwiązanie:
http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html
to hack do jQuery i doskonale sprawdził się w moich projektach
źródło
Możesz użyć :
źródło
Tak proste:
źródło
Napisałem wtyczkę jquery, aby rozwiązać ten problem .. to nic nie kosztuje ..
Katalog JQuery:
http://plugins.jquery.com/project/kegles-jquery-placeholder
Witryna: www.kegles.com.br/jquery-placeholder/
źródło
Wymyśliłem prosty skrypt zastępczy JQuery, który pozwala na niestandardowy kolor i używa innego zachowania polegającego na czyszczeniu danych wejściowych, gdy jest aktywny. Zastępuje domyślny symbol zastępczy w przeglądarkach Firefox i Chrome i dodaje obsługę IE8.
źródło
Placeholdr to superlekki wypełniacz jQuery, który napisałem. Jest mniej niż 1 KB zminimalizowane.
Upewniłem się, że ta biblioteka odnosi się do obu Twoich obaw:
Placeholdr rozszerza funkcję jQuery $ .fn.val (), aby zapobiec nieoczekiwanym wartościom zwracanym, gdy tekst jest obecny w polach wejściowych w wyniku Placeholdr. Jeśli więc będziesz trzymać się interfejsu API jQuery w celu uzyskania dostępu do wartości pól, nie będziesz musiał niczego zmieniać.
Placeholdr nasłuchuje przesłanych formularzy i usuwa tekst zastępczy z pól, dzięki czemu serwer po prostu widzi pustą wartość.
Ponownie, moim celem w przypadku Placeholdr jest zapewnienie prostego rozwiązania problemu zastępczego. Daj mi znać na Githubie, jeśli jest coś jeszcze, co mogłoby Cię zainteresować wsparciem Placeholdr.
źródło
Aby wstawić wtyczkę i sprawdzić, czy ie działa idealnie jquery.placeholder.js
źródło
Oto czysta funkcja javascript (bez użycia jquery), która utworzy symbole zastępcze dla IE 8 i starszych i działa również dla haseł. Odczytuje atrybut zastępczy HTML5 i tworzy element span za elementem formularza i sprawia, że tło elementu formularza jest przezroczyste:
źródło
UWAGA: autor tego wypełnienia twierdzi, że "działa w prawie każdej przeglądarce, jaką możesz sobie wyobrazić", ale zgodnie z komentarzami nie jest to prawdą dla IE11, jednak IE11 ma natywne wsparcie, podobnie jak większość nowoczesnych przeglądarek
Placeholder.js to najlepszy wypełniacz zastępczy, jaki widziałem, jest lekki, nie zależy od JQuery, obejmuje inne starsze przeglądarki (nie tylko IE) i ma opcje ukrywania przy wprowadzaniu i jednorazowego uruchamiania.
źródło
używam jquery.placeholderlabels . Jest oparty na tym i można go tutaj zaprezentować .
działa w ie7, ie8, ie9.
zachowanie naśladuje bieżące zachowanie przeglądarek Firefox i Chrome - gdzie tekst „zastępczy” pozostaje widoczny na fokusie i znika dopiero po wpisaniu czegoś w polu.
źródło
Stworzyłem własną wtyczkę jQuery po tym, jak byłem sfrustrowany, że istniejące podkładki ukrywają symbol zastępczy w skupieniu, co tworzy gorsze wrażenia użytkownika, a także nie pasuje do sposobu, w jaki Firefox, Chrome i Safari sobie z tym radzą. Dzieje się tak zwłaszcza w przypadku, gdy chcesz, aby dane wejściowe były skupione po pierwszym załadowaniu strony lub wyskakującego okienka, a jednocześnie nadal wyświetlał symbol zastępczy do momentu wprowadzenia tekstu.
https://github.com/nspady/jquery-placeholder-labels/
źródło