Leckék menü
JavaScript - advanced - Lecke száma 5
HTML űrlapok JavaScripttel
Miről szól ez a lecke?
Ebben a leckében visszatekintünk a HTML űrlapokra, néhány lehetőséget tekintünk meg, amellyel kiegészíthető az eddig végzett adatellenőrzés.
Egy új űrlap elemről tanulunk, a range típusú beviteli mezőről, amely számadatok bekérésére alkalmas és újabb eseményeket, amelyeket űrlapokkal használhatunk.

Új űrlap elem ebben a leckében:
<input type="range" /> - ez a HTML címke egy beviteli mező megjelenítésére alkalmas, amikor a számértékek értéke nem annyira fontos, nagyságrendekben gondolkodunk.

Új JavaScript tulajdonságok ebben a leckében:
min – tulajdonság a range elemhez, a legkisebb értéket jelöli, amit az elem értéke elérhet.
max – tulajdonság a range elemhez, a legnagyobb értéket jelöli, amit az elem értéke elérhet.
step – tulajdonság a range elemhez, az elem által felvehető lehetséges értékek közötti különbséget jelenti.
value – ezt a tulajdonságot, több űrlap elem esetén használjuk a tartalmának/értékének beállítására vagy lekérésére.
checked – ez a tulajdonság a value tulajdonság helyett használható a jelölőnégyzetek esetén. Az érték logikai: igaz, ha ki van pipálva és hamis, ha nem.

Új elem ebben a leckében:
onfocus – ez az esemény akkor következik be, ha kattintunk vagy tab billentyűvel váltunk egy űrlap elemre. Egy elem automatikus ia fokusz is lehet (autofocus tulajdonság).
onfocusout – ez az esemény akkor következik be, ha kilépünk egy űrlap elemről, amely előzőleg fókuszban volt. Például a szövegdoboz kitöltés után.
onchange – ez az esemény akkor következik, ha az elem megváltozik. Ez az esemény különbözik a focusout eseménytől, mivel ez az esemény többször bekövetkezhet a focus és a focusout esemény között.
onsubmit – ez az esemény akkor következik, ha az űrlap submit gombjára kattintunk. Az esemény egy űrlapra vonatkozik.

Új metódusok ebben a leckében:
isNaN(a leellenőrizendő adat) – ez a függvény eldönti, hogy a paraméterként megadott érték szám, vagy számmá alakítható. Igazat eredményez nem numerikus értékekre és hamisat numerikus adat esetén.

JavaScript-tel kiegészített űrlapok:
A name (név) és/vagy id (azonosító) értékeket kell adnunk az űrlap elemeknek, hogy elérjük őket a programkódból. Űrlap elemeket használhatunk, <form> címkék nélkül. Ezeket használhatjuk JavaScript-tel, a <form> címkére akkor van szüksége, ha az eredményt végül vissza akarjuk küldeni a webszerverre.

Példa űrlap elemekre tényleges űrlap nélkül:


Ebben a példában a kép megnövelése történik, a szövegdobozban megadott értékkel. A szövegdoboznak azonosítója van. Az azonosítót (id) és a value tulajdonságot használva elérhetjük a szövegdobozba írt számot.
A Number függvényt használjunk újra a szöveget számmá alakítani. Emlékezz vissza, hogy a + műveletnek a szövegre kifejtett hatása az itt elvárttól különbözik.
Ha betűket illesztünk be vagy üresen hagyjuk a szövegdobozt, nem történik növekedés.

Űrlap adathelyességének ellenőrzése JavaScriptel:
Előzőleg a HTML kódbeli validálást, adatellenőrzést használunk: a required kulcsszavat, a mintát (pattern) és gondosan kiválasztott űrlap elemeket használva.
JavaScript kódot használata, személyre szabott hibaüzeneteket és egyéb lehetőségeket nyújt: összehasonlíthatjuk különböző elemek értékeit, a beírt adatok típusát ellenőrizhetjük.
A hibák megelőzése érdekében, elrejthetünk és felfedhetünk új elemeket más elemek állapotától függően.

Példa tényleges űrlap adatellenőrzésére:


A fenti példában ellenőrizzük, hogy a szövegdobozok ki vannak töltve és a beírt szövegek ugyanazok.
Egyik szövegdobozra azonosítóval hivatkozunk és a másikra névvel.
A második hivatkozás az űrlapot is megnevezi.
A validate nevű függvényt az űrlap onsubmit eseményéhez társítjuk.
Az egyetlen probléma az, hogy az előzőleg beírt szöveg eltűnik, és újra ki kell töltenünk az egészet, ha hiba merül fel.


Az előző példa javított változataként, ez a kód nem eredményezi az űrlap újratöltését, ha egy hibaüzenet megjelenik.
A függvényt return utasítással van kiegészítve, igazat eredményez, ha helyesek az adatok és hamisat, ha hibát találtunk.
Nem szükséges az else ág ebben a függvényben, mivel a return utasítás befejezi a függvényt, a többi if-et nem látogatjuk meg ez esetben.

Példa a range típusú elem használatára:


Ebben a példában először használjuk a range típusú bemeneti adatot.
A kép szélessége a range elem értékének változtatásával változik.
Az érték bekérése minden alkalommal megtörténik, ahányszor módosítjuk a tartalmat. Az onchange esemény nem működött a címkén belülről, tehát szükségünk van az addEvenListener metódusra, hogy aktiváljuk.
Ha a range elem megváltozik, az értéket a change függvény a kép width (szélesség) tulajdonságához adja értékként.

Példa rádiógomb használatára:


Ebben a példában az űrlap két azonos nevű rádiógombbal rendelkezik. Annak eldöntésére, hogy melyiket választottuk ki az értéküket vesszük alapul, ez ebben a példában piros vagy kék lehet. A színt kiválasztva és az adatot elküldve a háttérszínt cseréljük le.

A hamis visszatérített értéket használva, elérhetjük, hogy az oldal ne töltődjön újra visszatérve a fehér háttérre.

Feladatok
1. A forms.html fájlban módosítsa a első űrlapot : ha a nevet beírja, módosítsa az űrlapon lévő szövegeket. Például, ha a neve Mike, végezze el a változtatásokat: Mike' s status(a felhasználói státusz helyett), a Mike's grade to our websites és a Mike's dream job.

Szükséged van annak biztosítása érdekében, hogy a szövegek hivatkozásra kerüljenek - nem pontosan alkotóelemek, ezért id azonosítóval kell megtalálni őket .
Tekintsd meg az eredményt
2. A style html-be, forms.html módosítsa a második űrlapot: a szövegmező hibaüzenetet jelenít meg, ha nem tölti ki, a másik három formanyomtatványt alapértelmezett értéke van, és nem lehet üresen (érték nélkül) vagy a megadott intervallumon kívüli értékkel beállítani.


Üzenetet jelenít meg, ha a szövegmező üres. Van egy minta, amely hibaüzenetet vált ki, ha a formátum rossz. Lehet használni ha szükséges, de a JavaScript használatával hozzáadhatjuk saját üzenetünket.
Győződjön meg róla, hogy a jelölőnégyzetek legalább egyike be van jelölve. Szükségük van a nevekre is - jelölőnégyzetek esetén ezeknek a neveknek eltérőnek kell lenniük (ellentétben a rádió gombokkal).
Használja a visszatérési nyilatkozatot, mint a harmadik példában (a már bevitt adatok megőrzése érdekében) nevet a formanyomtatványhoz.
Sikeres üzenetek indítása, ha az összes feltétel teljesül.

Tekintsd meg az eredményt
3. Módosítsa a gallery.html fájlt: adjon hozzá egy tartománytípus bemeneti elemet a véletlenszerû képhez a kép fölött. Az elemek értéke 1-rõl 6-ra változik, 1-es lépésenkénti értékkel. Ha az elem megváltozik, a képnek is változnia kell.
Tekintsd meg az eredményt
4. Módosítsa a forms.html fájl:

Adjon hozzá egy új űrlapot a leckék árának kiszámításához, amelyek tartalmazzák a szövegmezőt a szükséges órák számához, 3 rádió gomb az opciókhoz: egyéni lecke (15 EUR), kis csoport (10 EUR) és nagyobb csoport (5 EUR). Csak egyet kell ellenőrizni. Meg kell adnia egy elküldési gombot is.

Adatellenőrzés (HTML és JavaScript kombináció) használata annak biztosítására, hogy a szövegmező ne legyen üres és pozitív számot tartalmaz. A rádió gombok közül az egyiket ellenőrizni kell (alapértelmezettként ellenőrizhetjük). Szükség esetén használjon hibaüzeneteket.

Ha minden adat helyes, számítsa ki a fizetendő árat szorozva az órák számát és a kiválasztott árat. Az eredmény megjelenítése egy riasztási mezőben.

Tekintsd meg az eredményt
Kérdőív
1. Melyik állítás igaz az alábbi tartományelemre vonatkozóan?
<input id="r_e" type="range" min="10" max="30" step="5"/>
2. Ha van egy f1 névvel ellátott űrlap, egy tb1 nevű szövegmezővel, akkor hogyan férhetünk hozzá a tartalomhoz?
3. Az alábbiak közül melyik eredménye az igaz érték?
4. A következő lehetőségek közül melyik nem használható annak biztosítására, hogy az f1 tb1 nevű szövegmező nem üres?
Exclamation mark Ez az oldal sütiket használ. Ha folytatod böngészést, elfogadod azok használatát! Elfogadom