Azon mezők vizsgálata, melyek csak egészszámokat tartalmazhatnak, az egyszerű vizsgálatok közé, tartoznak.
Pozitív egész számok, a következők lehetnek: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Ezen mezőknél kettő vizsgálatot kell elvégezni:
Ebben a szakaszban megnézzük, hogyan lehet megvizsgálni azt, hogy egy űrlapmező
milyen karaktereket tartalmaz.
Az első példában azok a kitöltések lesznek helyesek, amelyek csak pozitív egész számokat tartalmaznak.
Űrlapunk megírása, így néz ki:
<body> <form name="form_numerikus"> <p> <input type="text" name="numerikus" size="20"> <br /> <input type="button" value="TESZT" onClick="numerikusCheck(form_numerikus.numerikus)"> <input type="reset" value="TÖRLÉS"> </p> </form> </body>
Teszteléshez írjunk be adatot, a következő mezőbe, és kattintsunk a gombra.
Programunkat megírhatjuk közvetlen a head szakaszban, vagy külön js fájlban.
Ha a head szakaszba írjuk, akkor csak az adott oldalon alkalmazható.
Ha külön js fájlba írjuk, akkor tetszőleges weboldalunk, űrlapjához is.
JavaScript kód megírása, így néz ki:
<head> <script language="JavaScript"> <!-- A JavaScript kód elrejtése function uresCheck(mezo) { if (mezo.value != "") return true; else{ alert("Üres mező!"); return false; } } function teszt(adat,minta) { for (var i=0; i<adat.length; i++) if (minta.indexOf(adat.charAt(i)) == -1) return false; return true; } function numerikusCheck(mezo) { if (!uresCheck(mezo)) return false; if (!teszt(mezo.value,"1234567890")) { alert("Ez nem numerikus érték!"); return false; } else { alert("Ez helyes érték!"); return true; } } // --> </script> </head>
Megjegyzés:
A programunkban lévő teszt() függvény, melynek természetesen adhattunk volna más elnevezést is,
minden olyan űrlapmezőben lévő adat ellenőrzésére alkalmazható, melyek,
csak az általunk meghatározott karaktereket tartalmazhatják.
Hogyan működik programunk:
Általunk elkészített numerikusCheck() függvény végzi az ellenőrzést.
Paramétere a vizsgált űrlapmező.
Függvényünk, if (!uresCheck(mezo)) return false; először meghívja az uresCheck() függvényt.
Ha ez hamis értéket ad vissza (azaz üres volt a mezőnk), akkor az utasítás igaz lesz, és a függvény hamis értékkel tér vissza.
Ellenkező esetben egy feltételes elágazás következik, melyben a teszt() függvény veszi át az ellenőrzést.
A teszt() függvény teszteli, hogy a paraméterként átadott adat minden karaktere
szerepel-e a szintén paraméterként átadott minta stringben.( minta = 1234567890 )
Vizsgálat egy for ciklussal történik, amely az adat összes karakterére lefut, közben azt
vizsgálja, hogy az aktuális karaktert, tartalmazza-e a minta.
if (minta.indexOf(adat.charAt(i)) == -1) return false;
Az adat.charAt(i) a lekérdezett adat for ciklus által meghatározott, string i-edik karakterét adja vissza.
Az indexOf() függvény meghatározza, hogy a lekérdezett karakter, hányadik a mintában.
Ha a lekérdezett karakter nem szerepel benne, akkor -1 értéket ad, a feltétel igaz lesz, és a teszt() függvény hamis értékkel tér vissza.
Példánkban a minta sztring, csak számokat tartalmaz ("1234567890"). Ebből következik, hogy a teszt függvény hamis értéket ad minden olyan adatra, amely, nem pozitív egész szám.
Ekkor az if (!teszt(mezo.value,"1234567890")) feltétel igaz lesz, és a numerikusCheck() függvény
hibaüzenetet jelenít meg, majd hamis értéket ad vissza.