Wygląda na to, że jest to bardzo dobrze znany problem, ale wszystkie rozwiązania, które znalazłem w Google, nie działają na moim nowo pobranym IE9.
Jaki jest Twój ulubiony sposób włączania Placeholder
właściwości w tagach input
i textarea
?
Opcjonalnie: straciłem na tym dużo czasu i jeszcze nie szukałem required
nieruchomości. Czy miałbyś również jakąś radę w tej sprawie? Oczywiście mogę sprawdzić wartość w PHP, ale pomoc użytkownikowi ta właściwość jest bardzo wygodna.
javascript
html
internet-explorer-9
placeholder
chriscatfr
źródło
źródło
Odpowiedzi:
Wtyczka HTML5 Placeholder jQuery
- autorstwa Mathiasa Bynensa (współpracownika przy HTML5 Boilerplate i jsPerf )
https://github.com/mathiasbynens/jquery-placeholder
Demo i przykłady
http://mathiasbynens.be/demo/placeholder
ps
Korzystałem z tej wtyczki wiele razy i działa świetnie. Także to nie przedstawi tekst zastępczy jako wartość po przesłaniu formularza (... prawdziwy ból I z innych wtyczek znaleziono).
źródło
onclick="_IW.FormsRuntime.submit(this.form);"
. Czy mimo wszystko mogę zmienić to zdarzenie onclick, aby najpierw wyczyścić symbole zastępcze, a następnie uruchomić ten kod CRM, który istnieje w onclick?Myślę, że właśnie tego szukasz: jquery-html5-placeholder-fix
To rozwiązanie wykorzystuje wykrywanie funkcji (przez modernizr ) do określenia, czy jest obsługiwany symbol zastępczy. Jeśli nie, dodaje obsługę (przez jQuery).
źródło
$(this)
należy przypisać zmienną, której można używać w całym kodzie. Wywołanie$
dla każdego używanego wyrażenia$(this)
jest nie-nie prosto z „Nie pisz jQuery w ten sposób 101”.Jeśli chcesz to zrobić bez użycia jquery lub modenizera, możesz użyć poniższego kodu:
Dla każdego pola tekstowego, którego chcesz użyć, musisz uruchomić
placeHolder(HTMLInputElement)
, ale myślę, że możesz to po prostu zmienić, aby dopasować! Również zrobienie tego w ten sposób, a nie tylko podczas ładowania, oznacza, że możesz sprawić, by działało dla danych wejściowych, które nie znajdują się w DOM podczas ładowania strony.Zauważ, że działa to poprzez zastosowanie klasy:
usingPlaceHolder
do elementu wejściowego, więc możesz użyć tego.usingPlaceHolder { color: #999; font-style: italic; }
do nadania mu stylu (np. Dodaj regułę, aby wyglądała lepiej).źródło
Oto znacznie lepsze rozwiązanie. http://bavotasan.com/2011/html5-placeholder-jquery-fix/ Zaadaptowałem to trochę do pracy tylko z przeglądarkami pod IE10
źródło
Jeśli chcesz wprowadzić opis, możesz użyć tego. Działa to w IE 9 i wszystkich innych przeglądarkach.
źródło
Używając mordernizr do wykrywania przeglądarek, które nie obsługują symboli zastępczych, utworzyłem ten krótki kod, aby je naprawić.
źródło
placeholder
właściwość została znormalizowana jako string => nie ma potrzeby Modernizr w rzeczywistości ::::::::::::::::::::::::::::if( typeof $('<input type="text">').get(0).placeholder == "undefined" ){ ... }
to enaugh test for non-support, tested w trybie emulacji IE9 - działa.Wiem, że się spóźniłem, ale znalazłem rozwiązanie wstawiając w nagłówku tag:
źródło
aby to działało w IE-9 użyj poniżej. to działa dla mnie
JQuery musi zawierać:
Styl CSS musi zawierać:
źródło
Trochę spóźniony na imprezę, ale używam mojego wypróbowanego i zaufanego JS, który wykorzystuje Modernizr . Można skopiować / wkleić i zastosować do dowolnego projektu. Działa za każdym razem:
źródło
Zwykle bardzo wysoko cenię http://cdnjs.com/ i wymieniają:
//cdnjs.cloudflare.com/ajax/libs/placeholder-shiv/0.2/placeholder-shiv.js
Nie jestem pewien, kto to jest kod, ale wygląda to prosto:
źródło
Szukałem w Internecie i znalazłem prosty kod jQuery, aby poradzić sobie z tym problemem. Po mojej stronie został rozwiązany i pracował nad tj. 9.
źródło