Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Placeholder - nie działa w Internet Explorer
james8
post 29.01.2013, 22:16:47
Post #1





Grupa: Zarejestrowani
Postów: 134
Pomógł: 0
Dołączył: 29.07.2008

Ostrzeżenie: (0%)
-----


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ąć?
Go to the top of the page
+Quote Post
tolomei
post 29.01.2013, 22:45:50
Post #2





Grupa: Zarejestrowani
Postów: 450
Pomógł: 135
Dołączył: 18.11.2010
Skąd: Wschowa

Ostrzeżenie: (0%)
-----


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


--------------------
“ Computers are good at following instructions, but not at reading your mind. ”
- Donald Knuth
Go to the top of the page
+Quote Post
Szymciosek
post 29.01.2013, 22:51:17
Post #3





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

Ostrzeżenie: (0%)
-----


https://github.com/mathiasbynens/jquery-placeholder
Go to the top of the page
+Quote Post
fizzlebubble
post 29.01.2013, 23:32:20
Post #4





Grupa: Zarejestrowani
Postów: 272
Pomógł: 28
Dołączył: 13.02.2011

Ostrzeżenie: (0%)
-----


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'));
                    }
                }
            })
        })
    }


--------------------
Nie obrażę się, jeśli za udzieloną pomoc odwdzięczysz się klikając w "Pomógł" :).
Go to the top of the page
+Quote Post
james8
post 23.02.2013, 10:59:45
Post #5





Grupa: Zarejestrowani
Postów: 134
Pomógł: 0
Dołączył: 29.07.2008

Ostrzeżenie: (0%)
-----


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?

Ten post edytował james8 23.02.2013, 11:34:02
Go to the top of the page
+Quote Post
dzastin
post 27.02.2013, 18:19:16
Post #6





Grupa: Zarejestrowani
Postów: 29
Pomógł: 2
Dołączył: 27.02.2013

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Pawel_W
post 27.02.2013, 22:47:58
Post #7





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

Ostrzeżenie: (0%)
-----


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. }
Go to the top of the page
+Quote Post
kicaj
post 28.02.2013, 19:36:45
Post #8





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

Ostrzeżenie: (0%)
-----


To ja jeszcze dorzucę tutaj swój 'placeholder fix': http://blog.kdev.pl/2013/01/poprawa-dziaan...laceholder.html


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 10:06