2011-11-22 16 views
5

Ho un modulo HTML con ingressi radio e voglio usare javascript per analizzare i risultati. mi sto bloccato a recuperare le informazioni sotto forma nella mia funzione JavaScript:Ottenere il valore da un pulsante di opzione utilizzando javascript

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

Dove Question1 è il "nome" del mio gruppo pulsante di scelta.

Questo restituisce "oggetto Nodelist" e non ho idea di cosa sia sbagliato, mi aspetto che restituisca "1", che è il valore del mio pulsante di opzione quando selezionato.

Non voglio capire quale pulsante di opzione è selezionato e quale no, ho bisogno di sapere il valore associato al pulsante di opzione selezionato.

+0

siete in grado di utilizzare jQuery? – Mathletics

+0

Hai controllato il repository del codice su javascript.internet.com? Devi scrivere un ciclo e controllare ciascuno dei pulsanti per il valore selezionato. – Tim

risposta

10

Il object Nodelist a cui si sta facendo riferimento viene restituito perché si dispone di un gruppo di elementi che condividono lo stesso nome. Se volete vedere il valore del pulsante di scelta che è selezionata, è necessario collegare attraverso la raccolta:

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

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

Ecco a working jsFiddle.

+0

Grazie per il vostro consiglio sul mio post precedente e la risposta qui, proverò a provare e vedere cosa posso fare –

+0

@JosephRobins, si prega di vedere il post aggiornato. C'era un bug nella mia precedente risposta. –

+0

Oh bellezza! Sono così felice ora :) :) :) Grazie mille per tutto il tuo aiuto! –

0

è possibile ottenere una soluzione più semplice ed elegante:

<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 
Problemi correlati