Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> input - onfocus/onblur
SeaDog
post
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 15.11.2010

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


Witajcie, znalazłem w internecie poniższy kod:

  1. <input type='password' name='password' value='xxxxxxxxxx' onfocus=\"if(this.value == 'xxxxxxxxxx') {this.value=''}\" onblur=\"if(this.value == '') { this.value='xxxxxxxxxx'}\" class='topinput' />


Chciałbym go lekko zmienić, żeby zamiast "gwiazdek", wyświetlany był zwykły napis: hasło
ale żeby podczas wpisywania hasła, wpisywany tekst był za "gwiazdkami".

W jaki sposób można to osiągnąć?
Go to the top of the page
+Quote Post
kamil4u
post
Post #2





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Masz:
Kod
<input type='password' name='password' value='hasło' id="test">
<script>
var el = document.getElementById('test');
el.type = 'text';
el.onfocus = function(){
if(this.value == 'hasło'){
  this.type = 'password';
  this.value = '';
}
}

el.onblur = function(){
if(this.value == ''){
  this.type = 'text';
  this.value = 'hasło';
}
}
</script>
Go to the top of the page
+Quote Post
SeaDog
post
Post #3





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 15.11.2010

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


Niestety podany skrypt nie działa.
Zaimportowałem go jako osobny plik.js, w formularzu dodałem ID do pola password i nic.
Cały napis jest za gwiazdkami a jak się kliknie w pole to gwiazdki w ogóle nie znikają.
Go to the top of the page
+Quote Post
kamil4u
post
Post #4





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Poczytaj o DOM. Następnie poczytaj o tym, dlaczego ten musi być załadowany, zanim będziesz na nich operował. Można to zrobić np. używając zdarzenia (on)load lub tak jak ja wstawiając kod JS, pod kodem HTML(za danym elementem).

Wszystko działa.
Go to the top of the page
+Quote Post
SeaDog
post
Post #5





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 15.11.2010

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


Jestem noga z JS ale ostatnio zaczął mi się podobać i dlatego będę musiał się go nauczyć.
Poczytałem trochę o wspomnianym przez Ciebie DOM. Na chwilę obecną jest to dla mnie czarna magia.
Umieściłem kod za polem input i faktycznie działa.

Dziękuję za pomoc.
Go to the top of the page
+Quote Post
kamil4u
post
Post #6





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Taka metoda nie jest najlepsza... - dałem to tylko jako przykład. Najlepiej zastosować zdarzenie onload:
Kod
onload = function(){
//tu Twój kod, który możesz wstawić wszędzie - oczywiście kod odpowiedzialny za działaniach na elementach
}

Jak poczytasz o DOM więcej to dowiesz się, że zdarzenia można też dodawać inaczej.
Go to the top of the page
+Quote Post
SeaDog
post
Post #7





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 15.11.2010

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


Muszę niestety odnowić temat (IMG:style_emoticons/default/worriedsmiley.gif)
Dopiero teraz spostrzegłem, że skrypt nie działa w IE 6-8
W tej "przeglądarce" gwiazdki nie znikają. W innych przeglądarkach wszystko jest ok.

W IE wyświetla się błąd "type".
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 13:55