Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Ajax ja radio button

faaraot [19.04.2011 20:35:16]

#

Lähetän ajaxilla tietoa testi.php:lle mutta radio painikkeissa lähetetään myös se tieto mikä ei ole valittuna.

var testi = form.testi.value;
<input type="radio" name="testi" value="1"></td>
          <td width="120"><input type="radio" name="testi" value="2">

eli miksiköhän kummankin radio painikkeen tiedot menee lähetyksessä. Eikö se normaalisti mene vain se mikä on valittuna?

Metabolix [19.04.2011 20:56:45]

#

Et voi hakea tuolla tavalla valittua arvoa, koska elementtejä on monta. Ainakin Chromiumissa ja Firefox 4:ssä form.testi on tyypiltään NodeList (en tarkistanut, mitä asiasta on sovittu). Arvon löytämiseksi pitäisi käydä se läpi ja katsoa, mikä elementeistä on valittu.

Yucca [20.04.2011 10:48:15]

#

Lähtökohtaisesti form.testi on määrittelemätön. Seuraava tapa toimisi siitä riippumatta, millaisten form- tai muiden elementtien sisällä radiopainikkeet ovat:

var testi = null;
var input = document.getElementsByTagName("input");
for(var i = 0; i < input.length; i++) {
   if(input[i].type == "radio" && input[i].name == "testi") {
      if(input[i].checked) {
	testi = input[i].value;
	break; }}}

Tuo on tietysti hiukan tehotonta, koska se käy läpi sivun kaikki input-elementit, mutta tehokkuutta on yleensä syytä murehtia vasta kun on aihetta olettaa, että sillä on käytännön merkitystä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta