7. 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"/>
: intervallummin
attribútum: a legkisebb kiválasztható értékmax
attribútum: a legnagyobb kiválasztható értékstep
attribú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
ésmax
attribútummal megadhatjuk a legkisebb és legnagyobb kiválasztható értéket - a dátumok megadása
ÉÉÉÉ-HH-NN
formá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
name
attribútum alapján történik: az azonosname
értékkel rendelkező választógombok alkotnak egy csoportot checked
attribú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ő
checked
attribú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>
tagfor
attribú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 arequired
attribútummal rendelkező elemeket:optional
: kijelöli arequired
attribú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 adisabled
attribútummal rendelkező (letiltott) űrlapelemeket:enabled
: kijelöli adisabled
attribú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 |
|