Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: JavaScript i formualrze
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
nikodem92
Witam!

Mam taki oto kod:

Kod
<script LANGUAGE="JavaScript">
<!--

function czyscImie(AInput)
{
    if (AInput.value == 'Podaj swoje imie:') {
        AInput.value = '';
    }
    return true;
}

function czyscMail(AInput)
{
    if (AInput.value == 'Twój e-mail:') {
        AInput.value = '';
    }
    return true;
}

function czyscWiadomosc(AInput)
{
    if (AInput.value == 'Tresc wiadomosci') {
        AInput.value = '';
    }
    return true;
}


//-->
</SCRIPT>


i

  1. <form name="form" method="post" action="mail.php" >
  2. <br>
  3. <input type="text" name="imie" value="Podaj swoje imie:" onfocus="return czyscImie(this);"><br>
  4. <br>
  5. <input type="text" name="email" value="Twój e-mail:" onfocus="return czyscMail(this);"> <br>
  6. <br>
  7. <br>
  8. <textarea name="tresc" rows="7" cols="30" onfocus="return czyscWiadomosc(this);">Tresc wiadomosci:</textarea>
  9. <input type="submit" name="submit" value="wyslij">    
  10. <input type="reset" name="reset" value="kasuj"></p>
  11. </form>


i taki problem: po kliknieciu na pole textowe input jest git wszystko dziala, a po kliknieciu na pole textarea zawartośc sie nie kasuje.
I jeszcze chodzi mi o to jak ktos nic nie wpisał w pole to żeby powracała jego wartość value. Może ktoś pomóc?

Pozdrawiam,
Łukasz
revyag
Nie kasuje się bo w textarea nie wpisałeś zawartości używając atrybutu value.
nikodem92
nie napisałem tak, bo nie działa jak dam

  1. value="tresc wiadomosci"



Pozdrawiam,
Łukasz
revyag
Nie mam teraz jak sprawdzić, ale dla textarea spróbuj użyć innerHTML.
Musiałbyś mieć dodatkową funkcję:
Kod
function czyscTextarea(Tarea)
{
    if (Tarea.innerHTML == 'Tresc wiadomosci') {
        Tarea.innerHTML = '';
    }
    return true;
}
JaRoPHP
Funkcja którą napisałeś @nikodem92 działa prawidłowo, z tym, że sprawdza ona, czy treść w polu <textarea /> jest równa Tresc wiadomosci, a powinna sprawdzać, czy jest równa Tresc wiadomosci: (dwukropek na końcu!).

  1. function czyscWiadomosc(AInput) {
  2. if (AInput.value == 'Tresc wiadomosci:') {
  3. AInput.value = '';
  4. }
  5. return true;
  6. }
nikodem92
rozumiem że funkcję należy wywołać tak:
  1. onFocus="return czyscTextarea(this);"



jak tak to nie działa sad.gif

aha no racja. Wielkie dzieki.

i teraz jeszcze w odwrotną stronę: jak ktoś nic nie wpisał w pole to żeby powracała ta wartość co była wpisana w value.

i tak naskrobałem coś takiego:

Kod
function pokazWiadomosc(AInput}
{
   if (AInput.value == '') {
       AInput.value = 'Tresc wiadomosci:';
      }
   return true;
}


i html:
  1. onChange="return pokazWiadomosc(this);"


ale dziwnie nie dziala i jeszcze jak to napisalem to przestało dzialac to poprzednie sad.gif

Prosze o pomoc,
Łukasz
nospor
jak na moj skromny gust to powinno byc onblur a nie onChange. masz to robic na wyjscie z inputa przeciez.
nikodem92
no racja, ale i tek nie dziala sad.gif ma ktoś jakiś pomysł?


dzieki za wszytsko dziala, bo zamiast dac:

Kod
function pokazWiadomosc(AInput)
{
   if (AInput.value == '') {
          AInput.value = 'Tresc wiadomosci:';
      }
   return true;
}


dałem:

Kod
function pokazWiadomosc(AInput}
{
   if (AInput.value == '') {
          AInput.value = 'Tresc wiadomosci:';
      }
   return true;
}


klamre zamiast nawiasu.

Pozdrawiam,
Łuaksz
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.