Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][HTML] Walidacja danych z SELECT
Forum PHP.pl > Forum > Przedszkole
Kshyhoo
Witam. Miałem sobie oto taką funkcję walidującą:
[JAVASCRIPT] pobierz, plaintext
  1. function validate() {
  2. errfound = false;
  3. var bledy = "";
  4. with (document.forms[0]) {
  5. if (numer.value == "") bledy += "Nie wpisałeś numeru!\n";
  6. if (tytul.value == "") bledy += "Nie wpisałeś tytułu!\n";
  7. if (autor.value == "") bledy += "Nie wpisałeś autora!\n";
  8. if (katid.value == "") bledy += "Nie wybrałeś kategorii!\n";
  9. if (bledy != "") error(bledy);
  10. }
  11. return !errfound;
  12. }
[JAVASCRIPT] pobierz, plaintext

I zachciało mi się zmiany ładowania kategorii. Teraz mam tak w formularzu:
  1. <select name="katid[]"><'.$kat_list.'</select>

Pomoże ktoś, bo ja w JS nie bardzo.
lobopol
Ale z czym masz problem? Co Ci nie działa? Jak to wywołujesz? Co chcesz aby to robiło etc. bo teraz to ja Ci najwyżej mogę powiedzieć o błędach kodowych i składniowych w zasadzie całkowicie oderwanych od Twojego problemu jakiego nie znam.

Ps. Używanie with jest po prostu złe, zapomnij o nim
Kshyhoo
Nie znam się na JS, a i w PHP jestem amatorem. Tą funkcją walidowałem formularz, nie pozwalał wysłać bez uzupełnienia pól. Dopóki kategoria była jedna, wszystko było ok. Teraz mam kategorię w multiselekt, więc odbieram tablicę. W PHP wiem co zrobić, ale w JS nie. ta linia:
[JAVASCRIPT] pobierz, plaintext
  1. if (katid.value == "") bledy += "Nie wybrałeś kategorii!\n";
[JAVASCRIPT] pobierz, plaintext

nie działa po przeróbce na:
[JAVASCRIPT] pobierz, plaintext
  1. if (katid[].value == "") bledy += "Nie wybrałeś kategorii!\n";
[JAVASCRIPT] pobierz, plaintext
sunpietro
daj identyfikator do selectboxa lub zmienie selektor na
Kod
var dropdowns = document.getElementsByTagName('select');

if (dropdowns[0].value === '') {}
Kshyhoo
Jesteś wielki, tego oczekiwałem. Działa jak należy.

EDIT: ech się pospieszyłem. Nie wszystko jest ja należy smile.gif Z pozoru wszystko działa, ale nie mam komunikatu. Po zmianie z dropdowns[0] na dropdowns[1] zaczyna działać, i nawet mam komunikat... ale formularz nie przechodzi (wciąż komunikat).
Turson
1. Walidacja samym JS nie jest dobrym pomysłem, bo user może wyłączyć JS w przeglądarce.
2. Zastosuj required w formularzu (HTML5).
3. Dodatkowo musisz zrobić walidację w PHP, bo user może mieć wyłączone JS oraz starą przeglądarkę bez HTML5.

To tylko rady.
Kshyhoo
Przecież to logiczne. Chcę tylko zabezpieczyć się przed wysłaniem formularza, stąd JS.
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.