2011-11-22 14 views
5

Mam formularz HTML z wejściami radiowymi i chcę używać javascript do analizy wyników. ja utknięcie na pobieranie informacji formularz w mojej funkcji javascript:Uzyskiwanie wartości z przycisku opcji za pomocą javascript

function getResults(formInput){ 
    alert (formInput.question1); 
} 

Gdzie question1 jest „nazwa” mojej grupy przycisków opcji.

Zwraca "obiekt Nodelist" i nie mam pojęcia, co jest nie tak, oczekiwałbym, że zwróci "1", co jest wartością mojego przycisku radiowego po wybraniu.

Nie chcę wiedzieć, który przycisk radiowy jest wybrany, a który nie, muszę znać wartość skojarzoną z wybranym przyciskiem radiowym.

+0

jesteś w stanie użyć jQuery? – Mathletics

+0

Czy sprawdziłeś repozytorium kodu na javascript.internet.com? Musisz napisać pętlę i sprawdzić każdy z przycisków dla wybranej wartości. – Tim

Odpowiedz

10

Numer object Nodelist, do którego się odwołujesz, jest zwracany, ponieważ masz grupę elementów o tej samej nazwie. Jeśli chcesz zobaczyć wartość przycisku radiowego, który jest sprawdzony, trzeba pętli kolekcji:

function getResults() { 
    var radios = document.getElementsByName("question1"); 

    for (var i = 0; i < radios.length; i++) {  
     if (radios[i].checked) { 
      alert(radios[i].value); 
      break; 
     } 
    } 
} 

Oto a working jsFiddle.

+0

Dziękuję za porady na temat mojego poprzedniego postu i odpowiedzi tutaj, spróbuję i zobaczę, co mogę zrobić –

+0

@JosephRobins, zobacz zaktualizowany post. W poprzedniej odpowiedzi był błąd. –

+0

O, piękna! Teraz jestem taka szczęśliwa :) :) :) Dziękuję bardzo za pomoc! –

0

można uzyskać bardziej proste i eleganckie rozwiązanie:

<input type=radio name=my_radio value=value_1> 

var my_form = document.querySelector('#my_form'); 
var my_radio = my_form.elements.my_radio; 

alert(my_radio.value) // this is the radionodelist.value you can check it on mdn 
Powiązane problemy