A MODULRÓL
Mit tanulsz meg?
Összetett űrlapok, amelyek működnek is: a régi változat ezeket csak megrajzolta (a „Következő” gomb nem lapozott, a jelszó-ellenőrző lista nem reagált, a fájllista kitalált fájlokat mutatott). A megjelenést itt is a CSS adja; a viselkedést rövid, kommentezett JavaScript – mindegyik példánál a JS fülön olvasható.
- többlépéses űrlap folyamatjelzővel és összegzéssel
- fájlfeltöltés ráhúzással, méretellenőrzéssel
- élő ellenőrzés a
:user-invalidpszeudo-osztállyal - címkeválasztó, többes választó, színséma, dátumtartomány
1. FEJEZET
Többlépéses regisztráció
Egy hosszú űrlap négy rövid lépésre bontva. A „Következő” gomb csak akkor lapoz, ha az aktuális lépés kötelező mezői rendben vannak (a böngésző saját ellenőrzése: reportValidity()); a folyamatjelző mutatja, hol tartunk. A jelszó feltétellistája gépelés közben frissül, a szem ikon megmutatja a jelszót, az utolsó lépés pedig a ténylegesen beírt adatokat összegzi – a „Szerkesztés” gombbal vissza lehet ugrani.
2. FEJEZET
Fájlfeltöltés ráhúzással
A zóna valójában egy <input type="file" multiple> címkéje: kattintásra a szokásos fájlválasztó nyílik, és billentyűzettel is elérhető. A ráhúzást (dragover, drop esemény) a szkript kezeli; minden fájl a listába kerül a méretével, a 10 MB-nál nagyobb hibát kap. A fájl nem hagyja el a gépet – a példa semmit nem tölt fel.
3. FEJEZET
Élő ellenőrzés CSS-sel
A zöld pipa és a piros hibaüzenet szkript nélkül jelenik meg: a böngésző a type="email", type="url", pattern, required alapján tudja, érvényes-e a mező, a CSS pedig a :user-valid és :user-invalid pszeudo-osztályokkal reagál. Ezek csak akkor illeszkednek, ha a felhasználó már hozzányúlt a mezőhöz – így nem kiabál hibát egy üres, még ki sem töltött űrlap. (A régi változatban ehhez a részhez egyáltalán nem tartozott CSS.) A jelszó feltétellistája szkripttel frissül.
A :user-invalid 2023 óta minden nagy böngészőben működik. A Bootstrap saját megoldása (a was-validated osztály, 4. modul) beküldés után színez; a kettő kombinálható.
4. FEJEZET
Összetett választómezők
Címkeválasztó (írj be egy címkét és nyomj Entert, vagy kattints egy javaslatra; a × töröl), többes választó lenyíló listával és kereséssel, színséma-választó rádiógombokkal, és dátumtartomány gyors gombokkal. A színséma CSS-only (rejtett rádiógomb + :checked); a többihez rövid szkript tartozik.
GYAKORLÁS
Gyakorló feladatok
- Egészítsd ki a többlépéses űrlapot állapotmentéssel: a beírt adatok oldal-újratöltés után is maradjanak meg (
localStorage). - A fájlfeltöltőben jelenjen meg a képek előnézete (
URL.createObjectURL()), és csak képet fogadjon el (accept="image/*"). - Készíts összetett szűrőt egy terméklistához: kategória (többes választó), árkategória (két csúszka), címkék.
- Ellenőrizd az összes példát csak billentyűzettel: minden vezérlő elérhető, látszik a fókusz, a hibaüzenet érthető?
A böngészőben futó ellenőrzés a felhasználónak segít, de nem védelem: a szervernek minden adatot újra ellenőriznie kell. A hibaüzenet mondja meg, mi a teendő („legalább 8 karakter”), ne csak azt, hogy hiba van; a többlépéses űrlapon pedig mindig lehessen visszalépni és javítani.