Szablon do walidacji danych formularza

0

Na własny użytek tworzę sobie stronkę z formularzem, gdzie chcę bardzo dokładnie walidować dane wprowadzane przez użytkownika. Docelowo walidacja będzie zarówno na front jak i back-end. Na początek stworzyłem coś w rodzaju template, których będzie walidował dane po stronie klienta. Chciałem, by to było możliwie jak najbardziej uniwersalne.

Backendem zajmę się niebawem, biorąc pod uwagę sugestie poruszane w poniższym wątku:
Walidacja imienia i nazwiska dla pola tekstowego

Mam już pewne założenia co do backendu, ale najpierw frontend. Nie ma sensu zaczynać dużego projektu, gdy podstawy stanowi kod spagetti.

W każdym razie zamiar jest taki, że użytkownik ma podać dane w ściśle określonym formacie. Tak samo musi wypełnić pewne konkretne pola, których ważność będę później przestawiał za pomocą znacznika date-priority bez ruszania kodu w JS lub po stronie serwera. Wydaje mi się, że to sprytne rozwiązanie. Czyli "nie przepuszczę", dopóki nie podasz tych danych, które ja chcę i jak chcę.

Oto link do repo: https://github.com/MrocznyRycerz/FormValidateTemplate

Chciałem generalnie dowiedzieć się takich rzeczy:
a) czy logika nie jest przekombinowana
b) czy kod jest w miarę czytelny
c) czy ewentualna migracja tego na jakiś framework będzie w miarę bezbolesna

0

żeby zacząć bezbolesnie - nazwy zmiennych z reguły zaczynaja się małą literą, a jak możesz użyć const to nie używaj let

0
MrocznyRycerz napisał(a):

Docelowo walidacja będzie zarówno na front jak i back-end.

Frontowcem nie jestem, nie za bardzo ocenię. Czyta się dobrze, choć w JS jestem szczypiorek.

ALE bardzo mi się marzy, aby wróciło nowe, i zmiana walidacji w backendzie, bo tam są definicje biznesowe, miał natychmiastowe odniesienie do frontendu.
Tak jest/było z aplikacjami servesidowymi + AJAX

Np NATYCHMIAST trzeba na prodzie poszerzyć walidację imienia do 100 znaków (kadry zatrudniły Hiszpana), front nam robił outsorsing / pracownik na urlopie / pracownica na macierzyńskim, generalnie nie dysponujemy szybko frontowcem. Jakbyś to zaproponował ...

0

screenshot-20221219135754.png
screenshot-20221219135933.png

0

Wprowadziłem drobne zmiany:

  • dodatkowe pole tekstowe które sprawdzam pod kątem wypełnienia
  • poprawione nazwy zmiennych i funkcji
  • backend który sprawdza 2 rzeczy: czy wszystkie wymagane pola są wypełnione oraz zabezpieczenie na XSS (funkcja htmlspecialchars)

Oczywiście jest to póki co testowy template, dlatego na razie po wypełnieniu dostajemy to, co wpisaliśmy.

Czyli to co widzę:
<> = " ` : ; ' \ |123-456-7890987654321

w kodzie strony jest widoczne jako:
&lt;&gt; = &quot; ` : ; &#039; \ |123-456-7890987654321

1 użytkowników online, w tym zalogowanych: 0, gości: 1