Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Formularz - onfocus, onblur
Forum PHP.pl > Forum > Przedszkole
markez07
Witam,
wczoraj postanowiłem nauczyć się JavaScript i mam już problem... Chcę by w polu tekstowym był napis imię, a po kliknięciu w to pole ma znikać. Gdy kliknę gdzieś obok i zostawię puste pole tekstowe napis "imię" ma wracać i dodatkowo ma wyskakiwać błąd "Uzupełnij pole imię".

  1. function poleImie(){
  2. var poleImie = document.getElementById("imie");
  3. poleImie.onfocus = function(){
  4. if(poleImie.value == "imię"){
  5. poleImie.value = "";
  6. }
  7. }
  8. poleImie.onblur = function(){
  9. if(poleImie.value == ""){
  10. poleImie.value = "imię";
  11. var errorImie = document.getElementById("blad").innerHTML = "Uzupełnij pole Imię";
  12. } else {
  13. //errorImie.style.display = "none";
  14. //errorImie.parentNode.removeChild(errorImie);
  15. document.getElementById("blad").style.display = "none";
  16.  
  17. }
  18. }
  19. }
  20. window.onload = function(){
  21. poleImie();
  22. }



Można powiedzieć, że to co jest powyżej działa, ale połowicznie. Za pierwszym razem jak kliknę w pole tekstowe napis "imię" znika, następnie zostawiam pole puste klikając gdzieś obok i poprawnie wyskakuje komunikat "Uzupełnij pole Imię", oraz wyraz "imię" wraca do pola tekstowego. Gdy drugi raz zaznaczę pole tekstowe i coś wpiszę komunikat o błędzie znika prawidłowo, ale gdy znów zostawię pole tekstowe puste to komunikat o błędzie już się nie pojawia.

Nie wiem też dlaczego nie działa mi parentNode.removeChild. Tak jakby zmiennej errorImie nie wykrywało?


Jeszcze jakieś takie dziwadło chciałem żeby zadziałało, ale niestety:
  1. function poleImie(){
  2. var poleImie = document.getElementById("imie");
  3. poleImie.onfocus = function(){
  4. if(poleImie.value == "imię"){
  5. poleImie.value = "";
  6. } else if(poleImie.value ==""){
  7. document.getElementById("blad").style.display = "none";
  8. }
  9. }
  10. poleImie.onblur = function(){
  11. if(poleImie.value == ""){
  12. poleImie.value = "imię";
  13. var errorImie = document.getElementById("blad").innerHTML = "Uzupełnij pole Imię";
  14. } else {
  15. document.getElementById("blad").style.display = "none";
  16. }
  17. }
  18. }
  19. window.onload = function(){
  20. poleImie();
  21. }


Proszę o pomoc, bo nie ogarniam.
PrinceOfPersia
Cytat
wczoraj postanowiłem nauczyć się JavaScript i mam już problem... Chcę by w polu tekstowym był napis imię, a po kliknięciu w to pole ma znikać.

do tego nie trzeba JavaScriptu, dajesz po prostu atrybut placeholder:
<input type="text" placeholder="imię" />
i masz.

Cytat
Gdy kliknę gdzieś obok i zostawię puste pole tekstowe napis "imię" ma wracać i dodatkowo ma wyskakiwać błąd "Uzupełnij pole imię".

wrzuć to na jsfiddle.net, bo tak ciężko sobie wyobrazić, a nie chce mi się (i chyba nie tylko mi) kopiować kodu do notatnika i odpalać.
markez07
Kod
http://jsfiddle.net/fLczq/


Pomóżcie smile.gif

e: To przecież podstawy. Nikt nie jest w stanie powiedzieć mi co robię źle i jak to poprawić?
PrinceOfPersia
tak spróbuj: http://jsfiddle.net/fLczq/1/
markez07
Dzięki
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.