Obtener el valor de un RadioButton seleccionado con JavaScript

Esta es una de esas cosas que las haces de ciento a viento y que cada vez que toca hacerla de nuevo, o no hay forma de acordarse cómo hacerlo o de dónde lo habíamos utilizado, para hacer un “copypaste”.

El siguiente HTML monta un formulario de ejemplo con el cual se solicita al usuario que elija su sistema operativo favorito.

<form name="frmSO">
<input type="radio" name="so" value="windows">Windows
<input type="radio" name="so" value="linux">Linux
<input type="radio" name="so" value="osx">OSX
<input type="radio" name="so" value="other">Other
</form>

No hay una forma directa de obtener qué radio button está seleccionado y saber así su valor. Si es la primera vez que lo intentas seguramente habrás intentado hacer algo como document.form.so.value y te habrás dado cuenta que eso no funciona, y es normal ya que si te fijas en el html, tenemos 4 controles con el mismo nombre. Para poder obtener el valor seleccionado, cada “conjunto” de controles radio está representado en JavaScript mediante un array, de forma que debemos recorrer ese array para obtener la opción seleccionada. El siguiente código nos facilita el trabajo:

function getRadioButtonSelectedValue(ctrl)
{
    for(i=0;i<ctrl.length;i++)
        if(ctrl[i].checked) return ctrl[i].value;
}

Ahora ya podríamos utilizar esta función para obtener el valor seleccionado, pasándole como parámetro el control radiobutton del que queremos obtener el valor, en nuestro caso: getRadioButtonSelectedValue(document.frmSO.so);.

Twitter Digg Delicious Stumbleupon Technorati Facebook Email

57 Respuestas para “Obtener el valor de un RadioButton seleccionado con JavaScript”

  1. Graciiiiaaaaasss Abdel tu codigo esta buenisimo ;-)

  2. Muchísimas gracias Patxi, me fué muy útil para un captcha que estoy retocando.

  3. gracias te la rifas una muy bna ayuda

  4. Muchas gracias, salvaste mi tarea y esperanza, tenia tiempo buscando la forma de obtener el valor de la opción elegida… me has quitado un dolor de cabeza de 4 días.

  5. Muchas gracias amigo, me ayude mucho….

  6. He leido tu tutorial para obtener el valor correspondiente a un boton seleccionado. Lo he intentado aplicar a un programilla para calcular el agua corporal (está en basto), pero no logro obtener el resultado. ¿Qué es lo que hago mal?. Llevo tres dias (tambien duermo) intentándolo, pero no le encuentro la pega. Es la primera vez que uso botones- Envío el código:

    function getRadioButtonSelectedValue(ctrl)
    {
    for(i=0;i<ctrl.length;i++)
    if(ctrl[i].checked) return ctrl[i].value;
    }
    function ACT1 (form)
    form.ACT.value = parseFloat(getRadioButtonSelectedValue(document.Factor.sexedad.value)) * parseInt(form.P.value)
    }

    Varón menor de 65 años
    Varón de 65 años o mayor
    Mujer menor de 18 años
    Mujer de 18 a 65 años
    Mujer mayor de 65 años

    Introduce Peso en Kg:

  7. Hola, a mi no me funciono este metodo lo probe en Opera 11.61, pero encontre un metodo en un libro que si me funciono aqui se los dejo por si alguien lo necesita:

    Chango
    Mono
    Pera

    ::: JavaScript :::

    function Regform(){
    var elementos = document.getElementsByName(“category”);
    var register;
    for(var i=0; i<elementos.length; i++) {
    if(elementos[i].checked){register = elementos[i].value; break;}
    }
    alert(register);
    }

Dejar un Comentario