Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript][HTML] Walidacja danych z SELECT
Kshyhoo
post
Post #1





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




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.


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
lobopol
post
Post #2





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

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


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

Ten post edytował lobopol 23.10.2013, 19:58:40


--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #3





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




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


Ten post edytował Kshyhoo 23.10.2013, 21:09:44


--------------------
Go to the top of the page
+Quote Post
sunpietro
post
Post #4





Grupa: Zarejestrowani
Postów: 262
Pomógł: 26
Dołączył: 23.01.2009
Skąd: eZ Systems

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


daj identyfikator do selectboxa lub zmienie selektor na
Kod
var dropdowns = document.getElementsByTagName('select');

if (dropdowns[0].value === '') {}


Ten post edytował sunpietro 23.10.2013, 21:18:27


--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #5





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




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

Ten post edytował Kshyhoo 23.10.2013, 21:33:52


--------------------
Go to the top of the page
+Quote Post
Turson
post
Post #6





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


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.

Ten post edytował Turson 24.10.2013, 12:45:56
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #7





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Przecież to logiczne. Chcę tylko zabezpieczyć się przed wysłaniem formularza, stąd JS.


--------------------
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 Aktualny czas: 21.08.2025 - 08:19