Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Czyszczenie inputa onFocus
Forum PHP.pl > Forum > Przedszkole
Poker
Cześć wszystkim,

Siedzę już ponad 2 godziny nad problemem z którym nie potrafię sobie poradzić. Chodzi mi o czyszczenie inputa z tekstem w momencie gdy na niego kliknę.

Wszystko jest bardzo proste gdy chodzi tutaj o wstawienie w html kodu, to nie ma problemu.

Ale u mnie cały kod znajduje się w pliku .js.

Pokażę przykład:

Kod
imgdiv.innerHTML = " <form  action='tutaj link gdzie zawartość ma zostać przesłana' method='GET' target='_blank'> <input type='hidden' value='" + title + "' name='tytul' /> <input type='hidden' value='" + plik + "' name='plik' /> <input type='hidden' value='" + via + "' name='skad' />  <div style='float:left; width:"+dlugosc+"px; '><span>Dodaj tagi: </span><input type='text' value='Tagi oddziel przecinkiem' name='tagi' id='tagi' style='float:left; width:"+dlugoscInput+"px; ' /> </div><input type='submit' style='float:left; display:block; width:"+ imagem.width +"px; '> </form>";


I tutaj mam problem z dodaniem czyszczenia inputa.

To co próbowałem to:

Stworzyłem kilka różnych funkcji do czyszczenia inputa i wykorzystywałem w taki sposób

Kod
<input type='text' value='Tagi oddziel przecinkiem' name='tagi' id='tagi' style='float:left; width:"+dlugoscInput+"px; '  onfocus=' "+ wyczysc(this) +" '/>


niestety nie wywołuje się

Próbowałem też bezpośrednio dodać do onfocus:

Kod
<input type='text' value='Tagi oddziel przecinkiem' name='tagi' id='tagi' style='float:left; width:"+dlugoscInput+"px; '  onfocus=" this.value='' "/>

Kod
<input type='text' value='Tagi oddziel przecinkiem' name='tagi' id='tagi' style='float:left; width:"+dlugoscInput+"px; '  onfocus=" this.value=''; "/>

Kod
<input type='text' value='Tagi oddziel przecinkiem' name='tagi' id='tagi' style='float:left; width:"+dlugoscInput+"px; '  onfocus=" + this.value=''+ "/>

Kod
<input type='text' value='Tagi oddziel przecinkiem' name='tagi' id='tagi' style='float:left; width:"+dlugoscInput+"px; '  onfocus=' " this.value='' " '/>

Kod
<input type='text' value='Tagi oddziel przecinkiem' name='tagi' id='tagi' style='float:left; width:"+dlugoscInput+"px; '  onfocus=' " + this.value='' + " '/>


Próbowałem już tyle różnych sposobów i nic z tego. Moim problemem jest brak znajomości JS dlatego możliwe że popełniam jakiś bardzo banalny błąd.
Czy jest ktoś w stanie mi pomóc i przy okazji wytłumaczyć mój błąd?

Dariusz
roghatt
nie jestem przekonany czy do końca zrozumiałem.
Ale chcesz mieć w inpucie jakiś tekst, po kliknięciu czyści go i wpisujesz co chcesz?
Akurat przykład z wpisywaniem numeru tel, który robiłem.

Jeśli tak:
  1. <input type="text" name="telefon" value="Wpisz numer telefonu" onblur="if( this.value == '' ) this.value = 'Wpisz numer telefonu';" onfocus="if( this.value == 'Wpisz numer telefonu' ) this.value = '';" style="border: 1px solid #D5C69F" size="21"/>
Poker
To zwykły html, a z tym nie ma problemu chodzi mi o osadzenie w .js tego wszystkiego.
mls
  1. imgdiv.innerHTML = '<form action="tutaj link gdzie zawartość ma zostać przesłana" method="get" target="_blank">
  2. <input type="hidden" value="' + title + '" name="tytul"/>
  3. <input type="hidden" value="' + plik + '" name="plik" />
  4. <input type="hidden" value="' + via + '" name="skad" />
  5. <div style="float: left; width: ' + dlugosc + 'px"
  6. <span>Dodaj tagi: </span>
  7. <input type="text" value="Tagi oddziel przecinkiem" name="tagi" id="tagi" style="float:left; width: ' + dlugoscInput + 'px" onfocus="this.value=\'\'" />
  8. </div>
  9. <input type="submit" style="float:left; display: block; width: ' + imagem.width + 'px">
  10. </form>';


A tak w ogóle, zainteresuj się atrybutem placeholder dostępnym w HTML5 - w przypadku jego zastosowania Twój przykład wyglądałby tak:
  1. <input type="text" value="" name="tagi" id="tagi" style="..." placeholder="Tagi oddziel przecinkiem">
Poker
Cytat(mls @ 15.07.2011, 21:23:11 ) *
  1. imgdiv.innerHTML = '<form action="tutaj link gdzie zawartość ma zostać przesłana" method="get" target="_blank">
  2. <input type="hidden" value="' + title + '" name="tytul"/>
  3. <input type="hidden" value="' + plik + '" name="plik" />
  4. <input type="hidden" value="' + via + '" name="skad" />
  5. <div style="float: left; width: ' + dlugosc + 'px"
  6. <span>Dodaj tagi: </span>
  7. <input type="text" value="Tagi oddziel przecinkiem" name="tagi" id="tagi" style="float:left; width: ' + dlugoscInput + 'px" onfocus="this.value=\'\'" />
  8. </div>
  9. <input type="submit" style="float:left; display: block; width: ' + imagem.width + 'px">
  10. </form>';



Wielkie dzięki za pomoc, wszystko działa jak należy. Tutaj moim błędem było wstawiać to w " ".

O placeholder nie słyszałem, więc również dzięki za podpowiedź.
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.