Ezek az űrlapelemek vagy adatbeviteli és adat megjelenítő elemek nem mások, mint az űrlap adatmezői.
A választógomb típusának neve, radio.
Ha van nyomógombos rádiónk, a rádió nyomógombjával választhatjuk ki, a nekünk megfelelő műsort. (Innen származik a gomb elnevezése: radio)
Mivel több választási lehetőség is van, ezért annyi választógombra van szükségünk, amennyi lehetőséget megadunk.
Ezért a választógombok egy adott csoporthoz (rádióhoz) tartoznak, melyből adódóan az azonosító nevük (name) egyforma, de mindegyik értéke (value) más (azaz más műsort fognak)
A választógombok közül, csak egyet választhat ki a felhasználó.
Példa:
Készítünk egy olyan választási lehetőséget, melynél a felhasználó három funkcióból választhat.
<form>
<input type="radio" name="gomb1" value="Kossuth" checked> Kossuth adó
<input type="radio" name="gomb1" value="Petofi"> Petőfi adó
<input type="radio" name="gomb1" value="Fehervar"> Fehérvár adó
</form>
A fenti programunk megjelenése weboldalon. (Válasszuk valamelyik gombot és kattintsunk rá)
A checked jelentése: Amelyik input jelölőelemben elhelyezzük, az lesz, az alapértelmezés szerinti kijelölt gomb.
Egy adott csoporthoz tartozó gombok közül, csak egyet jelölhetünk ki alapértelmezettnek.
Alkalmazása, azaz alapértelmezett kijelölés nem kötelező, ez csak ajánlásjellegű a felhasználó felé.
Kijelöltük vagy sem, úgyis a felhasználó dönt, és választ egyet.
A value után beírt jellemző ( érték ), cgi vagy JavaScript programunk felé továbbítódik, és ezzel állapítható meg, hogy a felhasználó melyik lehetőséget választotta.
(Hová továbbítódik? Ez attól függ, az elküldő gombot hogyan állítottuk be.)
JavaScriptben, a radio objektum alábbi tulajdonságaira hivatkozhatunk:
- name: A választógombok közös neve, de az adott objektumé is.
- length: Az adott csoportban lévő választógombok száma
- checked: Meghatározza gombok jelölési állapotát, mely lehet true vagy false.
A választógombok JavaScriptből történő eléréséhez a rádio objektumot használjuk, de tömbként kezeljük.
A tömbben, nullával kezdődően kapnak sorszámot.
A gombok, a következő tulajdonsággal rendelkeznek:
- value: Az adott gombhoz rendelt érték
- defaultChecked: A gomb alapértelmezett állapotát jelzi.
- checked: A nyomógomb, azaz választógomb állapota
Megjagyzés:
Ha oldalunkon több form (űrlap) is van, a JavaScript tömb formátumban tárolja form elemeket.
Első form (űrlap) a forms[0]; Második form (űrlap) a forms[1]; Harmadik form (űrlap) a forms[2]; és így tovább.
Példa egy adott gomb kiválasztására, és állapotának meghatározására (kiválasztva: true, nem kiválasztva: false)
<form name="rendeles" id="rendeles">
Válaszd ki a terméket:
<input type="radio" name="jelolt" value="Alma" checked> Alma
<input type="radio" name="jelolt" value="Tej"> Tej
<input type="radio" name="jelolt" value="Zsemle"> Zsemle
<input type="text" id="teszt" size="30">
<button onclick="rendelesek()"> Próbáld ki. </button>
</form>
<hr>
<p>Kiválasztott termék = <span id="info"></span></p>
<hr>
Megjelenés weboldalon:
Melyik rádiógomb van kijelölve, JavaSript programunkban meg kell adnunk:
- A form objektum nevét. ( name )
- Az input elem nevét ( name ) és gombok tömbben elfoglalt sorszámát.( első=[0], második=[1], harmadik=[2] )
- A tulajdonsághoz tartozó értéket: checked ( Mely lehet true vagy false)
Ha checked értéke true lesz, akkor a gomb kijelölve. ( Az if feltétel teljesül.)
Ha checked értéke false lesz, akkor a gomb nincs kijelölve. ( Az if feltétel nem teljesül.)
Melyik rádiógomb van kijelölve =
<p>Melyik rádiógomb van kijelölve = <span id="rgaktiv"></span></p> <button onClick="ellenorzes()";>Rádiógomb kijelölésének ellenőrzése. Katt ide!</button> <script> function ellenorzes() { id=document.getElementById("rgaktiv"); if(document.rendeles.jelolt[0].checked) { id.innerHTML ="1. Gomb van kijelölve. (Alma)"} if(document.rendeles.jelolt[1].checked) { id.innerHTML ="2. Gomb van kijelölve. (Tej)"} if(document.rendeles.jelolt[2].checked) { id.innerHTML ="3. Gomb van kijelölve. (Zsemle)"} } </script>
JavaSriptből
Html oldalon
Nem kötelező. De, ha a JavaScriptből valamelyik gombra a true értéket állítottuk be alapértelmezettként,
akkor az adott objektum többi gombját false értékre kell beállítani!
Ugyanis, a gombok átállítása, nem történik meg automatikusan.
Ezen átállítást a click( ) tagfüggvénnyel is megtehetjük.
Egy adott témakörhöz, tetszőleges választógomb darabszámot, azaz mennyiséget alkalmazhatunk, ha mindegyiknek más value jellemzőt írunk be.
Ilyen például a KRESSZ tesztlap is, ahol több kérdés is fel van adva, és általában három választási lehetőségünk van kiválasztani a megfelelő gombot.
Feltétele, hogy egy adott témakörökhöz tartozó választógombok neve (name="valami") egyforma legyen, de elkülönüljön a többi témakör gombjainak elnevezésétől.
Megjagyzés:
Ha oldalunkon több form (űrlap) is van, a JavaScript tömb formátumban tárolja form elemeket.
Első form (űrlap) a forms[0]; Második form (űrlap) a forms[1]; Harmadik form (űrlap) a forms[2]; és így tovább.
Példa rádiógomb beazonosítására, és értékének meghatározására.
<form name="rend" id="rend">
Válaszd ki a terméket:
<input type="radio" name="jelzett" value="Rizs" checked> Rizs
<input type="radio" name="jelzett" value="Cukor"> Cukor
<input type="radio" name="jelzett" value="Liszt"> Liszt
<input type="text" id="teszt" size="30">
<input type="button" value="Próbáld ki. Katt ide!" onclick="rendelesek()">
</form>
<hr>
<p>Kiválasztott termék = <span id="info"></span></p>
<hr>
Megjelenés weboldalon:
Kiválasztott termék =
<script> function rendelesek() { var radioTomb = document.forms[0]; var txt = ""; var i; for (i = 0; i < radioTomb.length; i++) { // radioTomb[i].checked értéke = true, if feltétel teljesül. Ha értéke false, if feltétel nem teljesül. if (radioTomb[i].checked) { txt = txt + radioTomb[i].value + " "; } } // Válasszunk, melyik kiíratást akarjuk alkalmazni. // 1. Kiíratás az id="teszt" azonosítóval rendelkező input ablakban. document.getElementById("teszt").value = "Kiválasztott termék = " + txt; // 2. Kiíratás az id="info" azonosítóval rendelkező tetszőleges jelölőelemben. id=document.getElementById("info"); id.innerHTML = txt; } </script>