Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Bledy z DOM w IE<9
Forum PHP.pl > Forum > Przedszkole
banito
Witam

Głowie się dlaczego w IE 8 i 7 (w 6 juz nie testuje, zapewno to samo albo gorzej) wywala blad dla funkcji napisanej przeze mnie do obslugi onclick (w sensie focus) i onblur. Chodzi o znikające opisy w polach input podczas ich klikniecia. Zauwazylem, ze event dziala tylko dla pierwszego pola.

Mam taki kod:
Kod
<input type="text" class="inputbox" name="username" value="nazwa" id="username1"  />
<input type="password" class="inputbox" name="password" value="haslo" id="password1"  />
[...]
<input type="text" class="inputbox" name="username1" value="nazwa" id="username1"  />
<input type="password" class="inputbox" name="password1" value="haslo" id="password1"  />


<script type="text/javascript">

var username=document.getElementById('username');
var password=document.getElementById('password');
myfocus(username,password);

var username1=document.getElementById('username1');
var password1=document.getElementById('password1');
myfocus(username1,password1);

function myfocus(u,p)
{
  u.onclick=function(){
    if(this.value=='nazwa') this.value='';
  }
  
  u.onblur=function(){
    if(this.value=='') this.value='nazwa';
  }
  
  p.type='text';
  
  p.onclick=function(){
    if(this.value=='haslo')
    {
      this.type='password';
      this.value='';
    }
  }
  
  p.onblur=function(){
    if(this.value=='')
    {
      this.type='text';
      this.value='haslo';
    }
  }
}
</script>


Ps. nie pytajcie po co na stronie dwa takie same formularze.
zegarek84
może źle przepisałeś a jeśli skopiowałeś to masz źle już w HTML'u gdyż powtarzają Ci się id...

po za tym daj przykład live... ludzie za Ciebie mają sobie składać do kupy działający przykład?? kompilatora w oczach mało kto ma... pasuje zobaczyć co to za błędy gdyż o nich nic a nic nie napisałeś...
banito
Tak zle przepisalem - kopiowalem wyrywki i oczywiscie maly blad tylko w id. Reszta jest OK. Działą wszedzie tylko nie w IE 8, 7 itd.

Nie wiem co masz na mysli, ze ludzie maja za mnie skladac do kupy dzialajacy przyklad? Przeciez ten przyklad dziala w 100%, poza wymienionymi browserami.
Wywalilem caly zbedny kod zeby nie mieszac ludziom.
Testuje strone w IEtesterze a tam dostaje tylko puste powiadomienie, ze wystapil blad na stronie: An error has occurred in this script on this page

Kod
<input type="text" class="inputbox" name="username" value="nazwa" id="username"  />
<input type="password" class="inputbox" name="password" value="haslo" id="password"  />
[...]
<input type="text" class="inputbox" name="username1" value="nazwa" id="username1"  />
<input type="password" class="inputbox" name="password1" value="haslo" id="password1"  />


<script type="text/javascript">

var username=document.getElementById('username');
var password=document.getElementById('password');
myfocus(username,password);

var username1=document.getElementById('username1');
var password1=document.getElementById('password1');
myfocus(username1,password1);

function myfocus(u,p)
{
  u.onclick=function(){
    if(this.value=='nazwa') this.value='';
  }
  
  u.onblur=function(){
    if(this.value=='') this.value='nazwa';
  }
  
  p.type='text';
  
  p.onclick=function(){
    if(this.value=='haslo')
    {
      this.type='password';
      this.value='';
    }
  }
  
  p.onblur=function(){
    if(this.value=='')
    {
      this.type='text';
      this.value='haslo';
    }
  }
}
</script>
lobopol
zamieść demo na jsfiddle
banito
link z przykładem: http://jsfiddle.net/EsBz2/
lobopol
Ok to sprawa ma się tak, ie8- nie pozwala na używanie type (nie posiada) możesz użyć
[JAVASCRIPT] pobierz, plaintext
  1. this.setAttribute('type', 'password');
[JAVASCRIPT] pobierz, plaintext


Ale mimo, że zadziała w innych przeglądarkach nie zadziała w ie8- (ale skrypt będzie działał nie zmieni się typ bo ie8- na to nie pozwala)

Jeżeli koniecznie chcesz zmieniać typ pola z password na text musiałbyś podmieniać całego inputa
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.