Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ [JavaScript][Smarty] text w input

Napisany przez: Ruch Radzionków 26.02.2013, 12:45:13

witam mam pytanie jak zrobic przy kliknięciu na input type="text" lub type="password" znikał text. przy php jest to tak:

  1. <input name=" " value="Wpisz szukane słowo" onfocus="if(this.value=='' || this.value == 'Wpisz szukane słowo') this.value=''" onblur="if(this.value == '') {this.value=this.defaultValue}" onkeyup="keyUp();" type="text">

ale jak to zrobic przy wykorzystaniu smart. szukałem na google ale niestety nie znalazłem. z góry dzięki za pomoc

Napisany przez: stud3nt 26.02.2013, 13:06:21

Wyrzucasz zdarzenia (onfocus) z inputa, nadajesz mu id='baba_jaga', przykładowo:

  1. <input type='text' name='nazwa_tekstu' id='baba_jaga' >


W bloku JSowym dopisujesz

  1. document.getElementById('baba_jaga').onfocus = function() {
  2. if(this.value=='' || this.value == 'Wpisz szukane słowo') {
  3. this.value = '';
  4. }
  5. }



Drugi sposób: kod JS umieszczasz między znacznikami {literal}{/literal} - SMARTY nie interpretuje tego, co jest między nimi.

Napisany przez: Ruch Radzionków 26.02.2013, 17:43:05

a jak takie coś zeobic przy type="password" żeby pokazało zamiast "*****" to "hasło"

Napisany przez: pitu 26.02.2013, 17:49:38

Po co jakieś JS, jak można skorzystać ze znacznika placeholder:

Kod
<input type="text" placeholder="jakis tekst">

Napisany przez: stud3nt 26.02.2013, 18:38:15

Cytat(pitu @ 26.02.2013, 17:49:38 ) *
Po co jakieś JS, jak można skorzystać ze znacznika placeholder:
Kod
<input type="text" placeholder="jakis tekst">


Zgadzam się z tym, ALE niestety według tej strony: http://caniuse.com/input-placeholder obsłuży to dopiero IE10+, z innymi przeglądarkami też nie jest zbyt różowo. Nie będę komentował postępowania MS, to nie miejsce na to. Jeśli ma to działać w starszych przeglądarkach, to niestety chyba pozostaje tylko JS.

Żeby zrobić JS taki 'zastępowalny' tekst, musisz zrobić dwa inputy - jeden normalny, z tekstem - widoczny. Drugi - prawdziwe okno z hasłem - musi być ukryte.

  1. <input type='text' id='falszywe_haslo' value='Wpisz tu hasło' style='display:block;' />
  2. <input type='password' id='haslo' name='haslo' style='display:none;' />


Potem w momencie naciśnięcia na fałszywe hasło, chowasz pole 'falszywe_haslo', a pokazujesz 'haslo' i aktywujesz je:

  1. document.getElementById('falszywe_haslo').onfocus = function() {
  2. document.getElementById('falszywe_haslo').style.display = 'none';
  3. document.getElementById('haslo').style.display = 'block';
  4. document.getElementById('haslo').focus();
  5. }


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)