• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Walidacja formularza

Object Storage Arubacloud
+1 głos
312 wizyt
pytanie zadane 24 czerwca 2022 w JavaScript przez AgentTecza Obywatel (1,810 p.)
Witam,

Mam pytanie jak zrobić dobrą walidację formularza w  javasript?

2 odpowiedzi

+2 głosów
odpowiedź 26 czerwca 2022 przez Comandeer Guru (600,810 p.)

Nie zgodzę się z tym, że najlepiej jest wykorzystać natywną walidację, bo ta jest od zawsze totalnie zepsuta i w dużej mierze niedostępna. Jeśli chcemy coś, co będzie równocześnie przyjazne użytkownikowi oraz dostępne, to trzeba mimo wszystko zrobić to samemu. W3C i gov.uk mają naprawdę fajne materiały na ten temat.

Osobiście stosowałbym natywną walidację w HTML jako ostateczną "linię obrony", gdyby JS z niestandardową walidacją z jakiejś przyczyny nie działał. Jednak jeśli będzie działać, to po prostu dodaję [novalidate] do formularza i używam istniejących atrybutów ([required][type] itd.) do zaserwowania własnej walidacji. Część bibliotek wspiera takie rozwiązanie.

komentarz 27 czerwca 2022 przez spamator12 Nałogowiec (28,230 p.)
"Jeśli chcemy coś, co będzie równocześnie przyjazne użytkownikowi oraz dostępne, to trzeba mimo wszystko zrobić to samemu. " dokladnie tak. Ba! Nie jest to takie proste, np walidacja maila wyglada tak:

http://www.ex-parrot.com/%7Epdw/Mail-RFC822-Address.html

Jak chcesz mu ladnie wyswietlic gdzie jest blad, to czeka Cie wyklepanie czegos takie samemu :) Juz nie wspominam o testach, seqiurze, ani laczeniu takich sprawdzen. A zalozenia, ze user ma zawsze wlaczony pelny JS, to tez tak z tym ronie bywa :)
+1 głos
odpowiedź 24 czerwca 2022 przez VBService Ekspert (253,100 p.)
edycja 26 czerwca 2022 przez VBService

Moim zdaniem nie warto za bardzo się skupiać na walidacji formularza za pomocą javascript-u, bo za pomocą devtools-a wbudowanego chyba już w każdą przeglądarkę można łatwo "obejść" taką walidację,

Front-end validation (javascript) can easily be bypassed. It should only be used to improve the "user experience" - by providing instant feedback

lepiej jest wykonać walidację w backend-dzie, jedyne co mogę polecić po stronie przeglądarki to użycie natywnej walidacji za pomocą atrybutów "wbudowanych" w elementy html (głównie <input>) używane w <form> np.:

oraz użyć odpowiednich typów <input> dla danych, które chcemy "pobrać" za pomocą formularza dla np.:

  • hasło -  <input type="password">
  • email -  <input type="email">
  •    link -  <input type="url"> itd.

 


[ EDIT ]

 Front-end validation (javascript) can easily be bypassed. It should only be used to improve the "user experience" - by providing instant feedback

1
komentarz 26 czerwca 2022 przez Comandeer Guru (600,810 p.)

Moim zdaniem nie warto za bardzo się skupiać na walidacji formularza za pomocą javascript-u, bo za pomocą devtools-a wbudowanego chyba już w każdą przeglądarkę można łatwo "obejść" taką walidację,

IMO pomijasz tutaj dość ważny aspekt: walidacja po stronie klienta nie ma służyć bezpieczeństwu, tylko podniesieniu UX. Usera nie obchodzi to, co dzieje się na backendzie, bo nie wchodzi z tym w interakcję. Wchodzi w interakcję z formularzem w przeglądarce i jeśli walidacja nie będzie przyjazna, zapewne nawet nie dokończy wypełniać formularza.

komentarz 26 czerwca 2022 przez VBService Ekspert (253,100 p.)

Jest w cytacie wzmianka o tym

Podobne pytania

+1 głos
2 odpowiedzi 1,149 wizyt
pytanie zadane 3 listopada 2020 w JavaScript przez ptomeccc Użytkownik (800 p.)
0 głosów
2 odpowiedzi 1,435 wizyt
pytanie zadane 18 października 2018 w JavaScript przez drraco Początkujący (370 p.)
0 głosów
1 odpowiedź 264 wizyt
pytanie zadane 6 października 2018 w JavaScript przez Sobol3k Użytkownik (690 p.)

92,555 zapytań

141,404 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...