Hová jutunk?

Numerikus szákmok ellenőrzése.

Űrlap, numerikus mezőjének, azaz egészszámok ellenőrzése.

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:

  1. Üres a mező vagy nem.
  2. A beírt adatok megegyeznek-e, a fent felsorolt számokkal.

 

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.