eRIZ’s weblog

PHP, webdesign, Linux, Windows i inne, bo nie samym chlebem człowiek żyje
Serdecznie zapraszam do udziału w ANKIECIE

Walidator formularzy i jQuery

Prace nad Vexerianem cały czas trwają. Kilka kamieni milowych osiągniętych, parę kwestii wyjaśnionych, działa OK.

Kolejną “milówką” jest klasa obsługi formularzy. Wychodząc z założenia “pomęczę się wcześniej, później będzie luźniej” postanowiłem napisać sobie kompleksową klasę obsługi formularzy. Pomysł wpadł mi do głowy po drodze, tylko nie pamiętam już do czego. :) Wracając - założyłem sobie obsługę kilku pól:

  • text - IMHO mówi samo za siebie
  • longtext - wypociny do textarea
  • integer - dane liczbowe
  • select - lista wyboru
  • radio - radioboxy
  • checkbox - :D
  • file - plik
  • date - generuje trzy selecty na wybór daty
  • email - adres e-mail
  • password - hasło+pole na potwierdzenie
  • IP - adres IP

Oczywiście po stronie gościa jest sprawdzanie, bo nie ma nic gorszego niż wklepanie wszystkiego, kliknięcie “Wyślij”, a tu potem klops - jedno pole niewypełnione i jeszcze nie wiadomo które to było.

Początkowo męczyłem się z przekazywaniem informacji dotyczących pól do skryptów po stronie użytkownika. (X)HTML nie ma przecież pola typu IP czy date. Oczywiście jest JSON, ale przy jego wykorzystaniu spada “przenośność” - definicja każdego formularza musi zostać przesłana osobno. Przyszedł mi do głowy za to inny pomysł. Mianowicie, przekazywanie danych poprzez klasy (class w atrybutach znacznika). Okazało się, że idea sprawdza się znakomicie. Do tego odpowiednie ubranie formularzy i gra gitara ;)

Co do samego sprawdzania poprawności: Wcześniej męczyłem się z przeskakiwaniem przez document.forms i document.getElementById. Głupiego robota, nie? Przypomniałem sobie jednak, że jest coś takiego jak jQuery. Dlaczego jQuery? Ze względu na architekturę, z którą po prostu aż chce się pisać aplikacje (tak, z pomocą tego frameworka już można śmiało pisać aplikacje, a nie tylko zwykłe skrypty). Jest jeszcze Prototype, ale brakuje mi w nim kilku funkcji, a jQuery jest lekki, ma wszystko, czego potrzeba, a nawet jeszcze więcej. W JS brakowało mi np. PHP-owskiego odpowiednika foreach. Dużo mniej trzeba się dzięki temu naklepać. ;) Wyliczać można długo, ale jeszcze z takich “nowinek” muszę wspomnieć choćby o łatwiejszym dostępie do warstw, ustawianiu zdarzeń i rozszerzalności za pomocą wtyczek. Na oficjalnej stronie możemy znaleźć kompletną dokumentację, odnośniki do wielu stron pokazujących zastosowania frameworka wraz z opisami i “trochę” wtyczek.

W opcjach walidacji można ustawić np. maksymalną i minimalną długość/wartość pola. Samo sprawdzanie przebiega w locie (podczas wprowadzania danych) oraz przy wysyłaniu.

Oczywiście po stronie serwera dane są również weryfikowane. ;)

2 komentarzy

dopisz swój :: trackback :: RSS z komentarzami

RSS z komentarzami :: trackback

Skomentuj

Możesz używać znaczników XHTML. Dozwolone są następujące tagi: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Wszystkie komentarze przechodzą przez moderację oraz filtry antyspamowe. Nie zostanie opublikowany komentarz, jeśli:

  • Jego treść obraża kogokolwiek.
  • W treści znajdują się wulgaryzmy i słownictwo ogólnie uznane za nieprzyzwoite.
  • Mam wątpliwości co do autora wpisu (Wszelkie anonimy są kasowane - niezależnie od zawartości - wpisz prawdziwy e-mail. Jeśli usunąłem, Twoim zdaniem, komentarz niesłusznie - daj znać). Zdarza się, iż sprawdzam kim jest komentujący.
  • Zawiera jakąkolwiek formę reklamy.

Szufladka