A HTML5 tel
egy mezőtípust biztosít, amely telefonos számokkal való használathoz lett kialakítva.
A telefonszámod: <input type="tel" name="telefon">
Okostelefonokon és tableteken a mezőre kattintva a telefonszám megadásához a számok billentyűzete jelenik meg.
Internetcím mezők url
típussal
A url
típusú mezők internetcímek megadására szolgálnak.
<input type="url" />
A URL mezők automatikusan validálódnak. A böngészőknek az ilyen típusú mezőknél ellenőrizniük kell, hogy valóban a helyes szintaktikájú URL-t adták-e meg.
Kimeneti mező output
Az output
mezővel tartalmakat lehet kiírni. Például JavaScript használatával érdekes lehet. Ezzel a mezővel változók kiírására lehet használni. Emellett a mezőt azonban számított értékek kimenetére is lehet használni. A mező kizárólag az adatkimenet számára szolgál. Felhasználói bemeneteket nem lehet megadni.
Példa:
<script> /* <![CDATA[ */ function ausgabe(){ wort1="Hello," wort2="Világ!" document.forms[0][0].value=wort1+wort2 } /* ]]> */ </script>
Ebben a példában két változót deklaráltak. Ezeknek a változóknak a tartalmát az output
mezőben kell megjeleníteni.
<body onload="ausgabe()"> <form action="auswertung.php" method="get" name="form"> <output name="feld" /> </form> </body>
Az Opera böngésző a kívánt értéket megjeleníti. Azok a böngészők, amelyek nem tudnak mit kezdeni az output
mezővel, nem jelenítenek semmit.output
ismeri a három attribútumot.
• form
– Az űrlap, amelyben az output
elem található.
• for
– Hivatkozás a mezőkre vagy értékekre, amelyekre az output mező vonatkozik. Az értékeket és mezőket szóközzel kell elválasztani egymástól.
• name
– Ha megad egy nevet, az űrlap elküldésekor a mező tartalma átkerül.
• value
– Megadja a mező értékét.output
természetesen alkalmas matematikai számításokhoz is. Például prompt mezők segítségével lehet értékeket bekérni és ezeket egymással megszorozni.
<!DOCTYPE html> <html > <head> <title>output</title> <script> /* <![CDATA[ */ function multi(){ a=parseInt(prompt("Szám 1.",0)); b=parseInt(prompt("Szám 2.",0)); document.forms["form"]["result"].value=a*b; } /* ]]> */ </script> </head> <body onload="multi()"> <form action="#" method="get" name="form"> <label>A szorzás eredménye:</label> <output name="result" /> </output> </form> </body> </html>
Ha meglátogatjuk az oldalt, megnyílik egy prompt ablak, amelyben az első értéket kell megadni.
Ha az első értéket a OK gombbal megerősítjük, megnyílik egy második ablak. (Az egyik vagy a két ablakban a Mégsem gombra kattintva az eredmény NaN, vagyis Nem szám lesz.)
Ha a második ablakot is a OK gombbal megerősítjük, a szkriptum a szorzás eredményét átadja az output
mezőbe mint érték.
Előrehaladási jelzők progress
Az előrehaladási jelzőt a progress
elem segítségével lehet megvalósítani. Például fájlok letöltésekor érdekes lehet.
A Google már értelmezi ezt az elemet. Más böngészők, amelyek nem ismerik, az elem tartalmát jelenítik meg.
Példa:
A letöltés folyamatban van ... <progress value="250" max="1000"> <span id="downloadProgress">25</span>% </progress>
A progress elem ismer két attribútumot:
• max
– Meghatározza, mennyi lépésre van szükség összesen.
• value
– Megadja, hogy hány lépés van már teljesítve.
A progress
elem igazán érdekessé válik, amikor bekapcsoljuk a JavaScript-et. Hogyan lehet kihasználni a progress
és a JavaScript kombinációját, azt legjobban egy példán keresztül lehet bemutatni.
Ebben a példában egy űrlapból indulunk ki, amelyet több lépésben kell kitölteni. Sorban a következő információkat kérdezzük ki:
• Keresztnév
• Vezetéknév
• Utca
• Irányítószám
• Hely
Ezt a néhány értéket természetesen egy oldalon lehet lekérdezni. De mi van, ha a felhasználótól nagyon sok információt kell begyűjteni? Ekkor a bonyolult űrlapok inkább ijesztő hatást keltenek. Ezért jobb, ha az űrlapokat több oldalra osztjuk fel.
Feltételezve, hogy az űrlapot meghívjátok.
Itt megkérik a keresztnevedet. A mező alatt a progress
-elemmel lett megvalósítva az állapotsor.
<fieldset id="lepes1" style="display: none;"> <p>Vezetéknév: <input type="text" name="vnev" size="30"></p> <p><progress max="5" value="1">1. lépés / 5</progress></p> <p><input type="button" value="Tovább" onclick="kovetkezoLepes(2)"></p> </fieldset>
Ezen a szintaxison több dolog is fontos. Az egyes fieldset
-elemeket először láthatatlanná teszik. Mivel még ha első pillantásra nem is úgy néz ki, de valójában az űrlap csak egy oldalból áll. A különböző mezőket külön fieldset
-elemekbe helyezték. És ezek a fieldset
-elemek (és tartalmuk) nem láthatók.
Azért, hogy az igazából rejtett elemek kattintás után láthatóvá váljanak, egy JavaScript-switch
-funkciót használnak. Hogy néz ki ez, azt a tutoriál további részében mutatjuk be.
Mellesleg nem is olyan vészes, ha a böngésző nem értelmezi a progress
-elemet. Mert ezek a böngészők egyszerűen az elem tartalmát jelenítik meg.
<progress max="5" value="1">1. lépés / 5</progress>
Az előrehaladási jelző helyett egy olyan szöveg látható, mint például 2. lépés / 5.
Az űrlap így néz ki:
<form method="post" action="#"> <fieldset id="lepes1" style="display: none;"> <p>Vezetéknév: <input type="text" name="vnev" size="30"></p> <p><progress max="5" value="1">1. lépés / 5</progress></p> <p><input type="button" value="Tovább" onclick="kovetkezoLepes(2)"></p> </fieldset> <fieldset id="lepes2" style="display: none;"> <p>Keresztnév: <input type="text" name="knev" size="30"></p> <p><progress max="5" value="2">2. lépés / 5</progress></p> <p><input type="button" value="Tovább" onclick="kovetkezoLepes(3)"></p> </fieldset> <fieldset id="lepes3" style="display: none;"> <p>Utca: <input type="text" name="utca" size="30"></p> <p><progress max="5" value="3">3. lépés / 5</progress></p> <p><input type="button" value="Tovább" onclick="kovetkezoLepes(4)"></p> </fieldset> <fieldset id="lepes4" style="display: none;"> <p>Irányítószám: <input type="text" name="irsz" size="30"></p> <p><progress max="5" value="4">4. lépés / 5</progress></p> <p><input type="button" value="Tovább" onclick="kovetkezoLepes(5)"></p> </fieldset> <fieldset id="lepes5" style="display: none;"> <p>Város: <input type="text" name="varos" size="30"></p> <p><progress max="5" value="5">5. lépés / 5</progress></p> <input type="submit" value="Vége"> </fieldset> </form>
Itt három dolog a lényeges:
• Mindegyik fieldset
-elemhez hozzárendelnek egy azonosítót.
• Minden fieldset
-elemet láthatatlanná tesznek a display: none beállításával.
• A gombokhoz a kovetkezoLepes(n)
függvény van hozzárendelve.
A kovetkezoLepes(n)
függvény a következőképpen néz ki:
<script> /* <![CDATA[ */ function kovetkezoLepes(n) { switch(n) { case 1: document.getElementById('lepes1').style.display = "block"; break; case 2: document.getElementById('lepes1').style.display = "none"; document.getElementById('lepes2').style.display = "block"; break; case 3: document.getElementById('lepes2').style.display = "none"; document.getElementById('lepes3').style.display = "block"; break; case 4: document.getElementById('lepes3').style.display = "none"; document.getElementById('lepes4').style.display = "block"; break; case 5: document.getElementById('lepes4').style.display = "none"; document.getElementById('lepes5').style.display = "block"; break default: break; } } kovetkezoLepes(1); /* ]]> */ </script>
Ez a függvény megjeleníti az aktuális fieldset
-elemet, és elrejti a többi fieldset
-elemet. Fontos, hogy figyeljétek meg, a függvényt az elrendelési mezők mögé tegyétek. Tehát legjobb, ha a záró </form>
mögé teszitek el.