Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]zdarzenie na input type=text w momencie wyslania formularza
Forum PHP.pl > Forum > Przedszkole
tog
witam

napisalem sobie prosty skrypcik walidacyjny


  1.  
  2. <form action="#" method="post" onsubmit="return register()">
  3. <input type="text" id="nick" name="nick"><br />
  4. <span id="er_nick"></span><br />
  5. <input type="text" id="mail" name="nick"><br />
  6. <span id="er_mail"></span><br />
  7. <button>rejestruj</button>
  8.  
  9. <script type="text/javascript" src="functions.js"></script>
  10.  
  11.  




  1.  
  2. function register()
  3. {
  4. var nick = document.getElementById('nick').value;
  5. var mail = document.getElementById('mail').value;
  6.  
  7. ret = 0
  8.  
  9. if(nick == '')
  10. {
  11. document.getElementById('er_nick').innerHTML = 'musisz wpisac imie'
  12. }
  13. else
  14. {
  15. document.getElementById('er_nick').innerHTML = ''
  16. ++ret
  17. }
  18.  
  19. if(mail == '')
  20. {
  21. document.getElementById('er_mail').innerHTML = 'musisz wpisac mail'
  22. }
  23. else
  24. {
  25. document.getElementById('er_mail').innerHTML = ''
  26. ++ret
  27. }
  28.  
  29. if(ret == 2)
  30. {
  31. ret = true
  32. }
  33. else
  34. {
  35. ret = false
  36. }
  37.  
  38. return ret
  39. }
  40.  


sprawa ma sie dobrze, tylko chcialbym zrobic tak aby funckja byla bardziej uniwersalna
poki co to mam tylko sztywny blok kodu, do ktorego nic nie przekasuje
gdybym dodal nowe pole to musialbym edytowac funcke
czy daloby sie zrobic wywolanie funkcji na kazdym input ?

czesciowo problem rozwiazaloby wywolanie funkcji x razy(gdzie x to ilosc pol formularza) w <form, w zdarzeniu onsubmit
a czy dalobysie wywolywac funkcje z kazdym inputem ?
erix
Ja bym to rozwiązał w inny sposób:
  • dajesz każdemu polu funkcję wywoływaną przez onchange, która indywidualnie sprawdza zawartość pola
  • przy wysyłaniu, przechodzisz pętlą wszystkie pola wywołując zdarzenie (w JS zmienna może być funkcją, więc wystarczy uchwyt.onchange())
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.