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?
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.
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ä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.