Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript] Formularz - onfocus, onblur
markez07
post 30.04.2013, 14:43:30
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 19.01.2010

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


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
PrinceOfPersia
post 30.04.2013, 17:00:51
Post #2





Grupa: Zarejestrowani
Postów: 717
Pomógł: 120
Dołączył: 18.04.2009

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


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ć.


--------------------
Go to the top of the page
+Quote Post
markez07
post 30.04.2013, 17:29:54
Post #3





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 19.01.2010

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


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ć?

Ten post edytował markez07 30.04.2013, 18:23:20
Go to the top of the page
+Quote Post
PrinceOfPersia
post 30.04.2013, 18:37:41
Post #4





Grupa: Zarejestrowani
Postów: 717
Pomógł: 120
Dołączył: 18.04.2009

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


tak spróbuj: http://jsfiddle.net/fLczq/1/


--------------------
Go to the top of the page
+Quote Post
markez07
post 30.04.2013, 21:45:47
Post #5





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 19.01.2010

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


Dzięki
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 13.08.2025 - 23:39