11. fejezet¶
Az űrlapok szerepe¶
Az eddigiek során főként a weboldalak megjelenésén volt a hangsúly: HTML-ben különféle elemeket helyeztünk el a weboldalon, majd CSS-ben formázásokkal láttuk el ezeket.
A HTML űrlapok lehetőséget biztosítanak arra, hogy a weboldalaink felhasználói bemenetet is tudjanak fogadni, amit később fel is tudunk dolgozni. Az űrlapok a modern weboldalak szerves részei, napi szinten találkozhatunk velük webes kalandozásaink során. Például ha be szeretnénk lépni a kedvenc közösségi oldalunkra, akkor egy - az alábbihoz hasonló - bejelentkezési űrlapon adjuk meg a belépéshez szükséges adatainkat.

Ennek a leckének a célja, hogy megtanuljunk HTML-ben űrlapokat készíteni. Természetesen a gyakorlatban fel is szoktuk dolgozni a felhasználó által az űrlapon megadott adatokat, de ezt jelen kurzus keretében nem tárgyaljuk.
Űrlapok létrehozása¶
HTML-ben a <form>...</form> tagpárral hozhatunk létre űrlapokat. Természetesen az űrlapok - mint minden megjelenítendő elem - a HTML dokumentum törzsrészébe (body) kerülnek.
A <form> tagnek adható fontosabb attribútumok:
action: az űrlap elküldésekor végrehajtandó feladat (pl. egy PHP szkript)method: az űrlapadatok továbbításának módja- lehetséges értékei:
GET(az űrlapadatok az URL-ben kerülnek továbbításra, alapértelmezett),POST(az űrlapadatok a háttérben továbbítódnak)
- lehetséges értékei:
enctype: az űrlapadatok kódolása- lehetséges értékei:
application/x-www-form-urlencoded(alapértelmezett),multipart/form-data(fájlfeltöltést tartalmazó űrlapoknál ezt kell használnunk),text/plain(levélküldéskor)
- lehetséges értékei:
autocomplete: automatikus kitöltési javaslatok engedélyezése vagy letiltása- lehetséges értékei:
on(kitöltési javaslatok engedélyezése, alapértelmezett),off(kitöltési javaslatok letiltása)
- lehetséges értékei:
novalidate: letiltja az űrlap elküldésekor végrehajtandó ellenőrzéseket.
Megjegyzés
Fontos megjegyezni, hogy mivel a method="GET" attribútummal rendelkező űrlapok adatai az URL-ben lesznek továbbítva, ezért ez a módszer NEM alkalmas bizalmas adatok (pl. jelszavak) biztonságos továbbítására (vélhetően senki nem örülne annak, ha a jelszavát bárki láthatná az URL sávban)! Ha egy űrlapon bizalmas adatokat (pl. jelszavakat) szeretnénk továbbítani, akkor mindenképpen a method="POST" attribútumot használjuk!
Fontosabb űrlapelemek¶
Ebben a részben megismerkedünk a HTML űrlapokon elhelyezhető fontosabb vezérlőelemekkel.
Egysoros beviteli mező¶
A HTML űrlapokon leggyakrabban az <input/> páratlan taget használjuk. Ez számos különféle űrlapelem (pl. szöveges beviteli mező, választógomb, jelölőnégyzet, elküldés gomb stb.) létrehozására alkalmas.
Fontosabb attribútumok¶
Még mielőtt áttekintenénk a különféle beviteli mező típusokat, először ismerkedjünk meg az <input> tagnek adható fontosabb attribútumokkal:
name: mezőnév, ami alapján le tudjuk kérni a beviteli mezőbe írt értéketsize: a beviteli mező szélessége (karakterben)- tehát nem a beírható karakterek számát korlátozza, hanem csak a megjelenő űrlapmező szélességét (vesd össze:
maxlength)
- tehát nem a beírható karakterek számát korlátozza, hanem csak a megjelenő űrlapmező szélességét (vesd össze:
maxlength: a beírható karakterek maximális számavalue: a mezőbe írt alapértelmezett értékplaceholder: mintaérték a felhasználó számára (akkor jelenik meg, ha a mező üres)autocomplete: ugyanúgy működik, mint a<form>-nál (on/offértékek)required: a mezőt kötelező kitöltenireadonly: a mező csak olvasható, nem módosíthatódisabled: a mező letiltása (halványan jelenik meg, nem lehet bele írni)type: az űrlapmező típusa.
Fontosabb beviteli mező típusok¶
Az <input> tag type attribútumával megadhatjuk a beviteli mező típusát. Néhány fontosabb mezőtípus, ami közül válogathatunk:
<input type="text"/>: rövid szöveg<input type="password"/>: jelszó- a beírt karakterek helyett pontok vagy csillagok jelennek meg
- felhasználói jelszavak bekérésére mindenképpen ezt a mezőtípust kell használni (nagy felelőtlenség lenne egyszerű szövegként megjeleníteni a begépelt jelszót)
- a jelszavak szerverre való továbbításánál nem történik titkosítás
<input type="number"/>: szám<input type="range"/>: intervallumminattribútum: a legkisebb kiválasztható értékmaxattribútum: a legnagyobb kiválasztható értékstepattribútum: lépésköz
<input type="tel"/>: telefonszám<input type="email"/>: e-mail cím (ellenőrzi a formátumát)<input type="url"/>: URL (ellenőrzi a formátumát)<input type="color"/>: szín<input type="date"/>: dátum- a
minésmaxattribútummal megadhatjuk a legkisebb és legnagyobb kiválasztható értéket - a dátumok megadása
ÉÉÉÉ-HH-NNformátumban történik
- a
<input type="time"/>: időpont<input type="datetime-local"/>: dátum és időpont<input type="file"/>: fájlfeltöltés<input type="search"/>: keresendő szöveg<input type="radio"/>: választógomb- az egy csoportba tartozó választógombok közül legfeljebb 1 opció jelölhető meg
- a választógombok csoportosítása a
nameattribútum alapján történik: az azonosnameértékkel rendelkező választógombok alkotnak egy csoportot checkedattribútum: az adott opció alapból be van jelölve a lap betöltésekor
<input type="checkbox"/>: jelölőnégyzet- egyszerre több opció is megjelölhető
checkedattribútum: az adott opció alapból be van jelölve a lap betöltésekor
<input type="button"/>: egyszerű nyomógomb<input type="submit"/>: elküldés gomb (ha rákattintunk, elküldi az űrlapot)<input type="reset"/>: visszaállítja az űrlapmezők eredeti értékeit (alapállapot gomb)<input type="hidden"/>: rejtett mező (technikai célokra használjuk).
Példa: Egy egyszerű bejelentkezési űrlap (formázás nélkül)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
Több soros beviteli mező¶
A <textarea>...</textarea> taggel több soros szöveg bevitelére alkalmas űrlapmezőt hozhatunk létre. Az ilyen beviteli mezőket gyakran használjuk például felhasználói visszajelzések, kommentek bekérésére.
Ennél a tagnél is használhatók a korábban tárgyalt name, placeholder, maxlength, required, readonly és disabled attribútumok. Ezek mellett a rows attribútummal megadhatjuk a megjelenő sorok számát, a cols attribútummal pedig az oszlopok számát.
Példa: Felhasználói visszajelzés bekérése
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |

Választólista¶
A <select>...</select> tagpárral egy lenyitható választólistát hozhatunk létre egy űrlapon belül, amelynek segítségével különböző opciók közül választhat a felhasználó. A korábban tárgyalt name, required és disabled attribútumokat erre az űrlapelemre is alkalmazhatjuk.
A választólistához tartozó opciókat az <option>...</option> taggel adhatjuk meg. A tag fontosabb attribútumai:
value: az űrlap feldolgozásakor a szervernek elküldött értékselected: az opció alapból ki van választva a lap betöltésekordisabled: az opciót nem lehet kiválasztani.
Alapértelmezett módon egy választólistán belül mindig csak egy opció választható ki. Ha engedélyezni szeretnénk több opció kiválasztását is, akkor ezt a <select> tagnek adott multiple attribútummal tehetjük meg.
Példa: Egy egyszerű választólista
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |

Elemfelirat¶
Az egyes űrlapelemekhez készíthetünk elemfeliratot is a <label>...</label> taggel. Ha a felhasználó egy elemfeliratra kattint, akkor automatikusan az elemfelirathoz tartozó űrlapelem kerül a fókuszba.
Egy űrlapelemhez kétféleképpen társíthatunk elemfeliratot:
- az űrlapelemet a
<label>és</label>tagek közé helyezzük - az űrlapelemnek adunk egy egyedi azonosítót (
id), majd az elemhez tartozó<label>tagforattribútumának értékeként megadjuk ezt az azonosítót
Példa: Elemfeliratok társítása űrlapmezőkhöz
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
Mezőcsoportosítás¶
Űrlapok készítésekor érdemes lehet az űrlapelemeket strukturálni, az azonos témához tartozó űrlapmezőket csoportosítani. Az ilyen mezőcsoportosítások kialakítását a <fieldset>...</fieldset> tagpárral végezhetjük.
A <legend>...</legend> taggel megadhatjuk egy mezőcsoportosítás feliratát.
Példa: Mezőcsoportosítás használata
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |

Űrlapok formázása¶
Mint minden HTML elemet, az űrlapelemeket is lehetőségünk van CSS formázásokkal ellátni. A böngészők sok tulajdonságnak adnak alapértéket, ezért alaposnak kell lennünk, ha egy űrlap kinézetét szeretnénk testreszabni. Az űrlapok formázására használhatjuk a korábbi leckékben megismert valamennyi CSS tulajdonságot.
A formázandó űrlapelemek kijelölésekor gyakran előkerül a múlt órán tanult attribútum alapján történő kijelölés. Például ha ki szeretnénk jelölni az összes <input type="text"/> típusú űrlapelemet, akkor ezt az input[type="text"] CSS szelektorral tudjuk megtenni.
Egy-egy űrlapelem csoport kijelölésére használhatunk különböző pseudo-class-okat is:
:required: kijelöli arequiredattribútummal rendelkező elemeket:optional: kijelöli arequiredattribútummal nem rendelkező elemeket:focus: kijelöli a fókuszban lévő elemet:checked: kijelöli a bejelölt radio, checkbox és option elemeket:disabled: kijelöli adisabledattribútummal rendelkező (letiltott) űrlapelemeket:enabled: kijelöli adisabledattribútummal nem rendelkező (engedélyezett) űrlapelemeket.
Egy teljes példa¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | |
