2011-11-22 116 views
5

Tengo un formulario HTML con entradas de radio y quiero usar javascript para analizar los resultados. me estoy atascado en la recuperación de la información del formulario en mi función de JavaScript:Obtener el valor de un botón de opción con javascript

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

Dónde pregunta 1 es el "nombre" de mi grupo de botones de radio.

Esto devuelve "object Nodelist" y no tengo ni idea de lo que está mal, espero que devuelva "1", que es el valor de mi botón de opción cuando se selecciona.

No quiero saber qué botón de opción está seleccionado y cuál no, necesito saber el valor asociado con el botón de opción seleccionado.

+0

que son capaces de usar jQuery? – Mathletics

+0

¿Ha comprobado el repositorio de código en javascript.internet.com? Tienes que escribir un ciclo y verificar cada uno de los botones para el valor seleccionado. – Tim

Respuesta

10

Se está devolviendo el object Nodelist al que se refiere porque tiene un grupo de elementos que comparten el mismo nombre. Si desea ver el valor del botón de opción que está comprobado, es necesario recorrer la colección:

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

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

Aquí es a working jsFiddle.

+0

Gracias por su consejo sobre mi publicación anterior y la respuesta aquí, lo intentaré y veré lo que puedo hacer –

+0

@JosephRobins, consulte la publicación actualizada. Hubo un error en mi respuesta anterior. –

+0

¡Oh, belleza! Estoy muy feliz ahora :) :) :) ¡Muchas gracias por toda tu ayuda! –

0

se puede obtener una solución más simple y 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 
Cuestiones relacionadas