Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Placeholder - nie działa w Internet Explorer
Forum PHP.pl > Forum > Po stronie przeglądarki
james8
Witajcie,

Projektuje aplikacje internetową zawierającą formularz, do elementu input wstawiłem atrybut placeholder, w przegladarkach chrome, opera działa bez problemu, jednak otworzyłem stronę w IE 9 i nie działa :/

Jak wyczytałem na STRONIE, placeholder jest obsługiwany dopiero przez 10 wersje IE, czy istnieje jakiś "hak" aby to ominąć?
tolomei
Witaj.

Możesz pomyśleć o jakimś pluginie javascriptowym, który utworzy Ci placeholder dla IE.
Możesz go uruchamiać tylko przy wykryciu, że jesteś w IE 9/8/7, więc w innych przeglądarkach zostanie użyta funkcjonalność wbudowana.
Gdzie szukać? Google prawdę Ci powie.

Pozdrawiam
Szymciosek
https://github.com/mathiasbynens/jquery-placeholder
fizzlebubble
jquery placeholder jest spoko, ale spróbuj poniższy kod:

Kod
    if($('input[value]:not(:radio, :checkbox)').length) {        
    $('input[value]:not(:radio, :checkbox)').each(function() {
            var $this = $(this);
            $this.data('value', $this.val());
            $this.on({
                'focus' : function() {
                    if($this.val()==$this.data('value')) {
                        $this.val('');
                    }
                },
                'blur' : function() {
                    if($this.val()=='') {
                        $this.val($this.data('value'));
                    }
                }
            })
        })
    }
james8
Cytat(fizzlebubble @ 29.01.2013, 23:32:20 ) *
jquery placeholder jest spoko, ale spróbuj poniższy kod:

Kod
    if($('input[value]:not(:radio, :checkbox)').length) {        
    $('input[value]:not(:radio, :checkbox)').each(function() {
            var $this = $(this);
            $this.data('value', $this.val());
            $this.on({
                'focus' : function() {
                    if($this.val()==$this.data('value')) {
                        $this.val('');
                    }
                },
                'blur' : function() {
                    if($this.val()=='') {
                        $this.val($this.data('value'));
                    }
                }
            })
        })
    }


Rozumiem, że po zaznaczeniu zaznaczenika <input type="text" value="zawartość" /> wartość value powinna zniknąć?

Niestety nie działa.... Jakieś pomysły?
dzastin
IE niestety nie wspiera placeholder'ów, ostatnio rozwiązywałem to tak:
- dla pustego pola w value wpisuję wartość placeholdera
- przy focusie na pole i value == placeholder czyszczę value
- przy utracie focusa na polu i value puste, to ponownie wpisuję tam placeholder

Ogólnie jakieś gotowce tutaj:
http://stackoverflow.com/questions/5522164...ternet-explorer
Pawel_W
tu masz gotowy kod, który wykrywa, czy przeglądarka obsługuje placeholder, jeżeli nie, to stosuje javascriptowy zamiennik:
  1. if(!('placeholder' in document.createElement('input'))){
  2. $('input').focus(function(){
  3. if($(this).val() == $(this).attr('placeholder')) $(this).val('');
  4. }).blur(function(){
  5. if($(this).val() == '') $(this).val($(this).attr('placeholder'));
  6. }).trigger('blur');
  7. }
kicaj
To ja jeszcze dorzucę tutaj swój 'placeholder fix': http://blog.kdev.pl/2013/01/poprawa-dziaan...laceholder.html
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.