Problemas con Radio buttons

Visto 139 veces
Saltar al primer mensaje no leído

Patricio Avila

no leída,
9 nov 2009, 10:33:419/11/09
a codeigniter-spanish
Aeñores estoy tratando de obtener el valor del radio button seleccionado de una lista de opciones y  me arroja solo erroresde javascript. la funcion es la siguiente

function radiovalue(radios) {
    for (i = 0; radio = radios[i]; i++) {
        if (radio.checked) {
            return radio.value;
        }
    }
}

Y esta es la llamada a la funcion


function valor_de_radio ()
{
  var grupo = document.getElementsByName('filtro').turno;
  alert(radiovalue(grupo));

}


Cualquier ayuda al respecto se agradece desde ya

Fásiko

no leída,
9 nov 2009, 10:45:149/11/09
a codeignit...@googlegroups.com
Me da a mí que no tienes bien la estructura del for.
Sería más bien (no lo he probado):

function radiovalue(radios) {
    for (i = 0; i <= radios.count; i++) {
        if (radios[i].checked) {
            return radios[i].value;

Fásiko

no leída,
9 nov 2009, 10:53:119/11/09
a codeignit...@googlegroups.com
Por cierto, en la función

function valor_de_radio ()
{
  var grupo = document.getElementsByName('filtro').turno;
  alert(radiovalue(grupo));

}

no sé que pinta el ".turno". Me da a mí que también sería var grupo = document.getElementsByName('filtro');

Patricio Avila

no leída,
9 nov 2009, 10:57:279/11/09
a Codeigniter
Lo del for puede ser lo recusaré.

Lo del turno es el nombre de los radio y filtro es el formulario.

Saludos

Patricio Avila Figueroa
Usuario Linux #454898
Sent from my BlackBerry® wireless device
http://indenti.ca/elkan
http://palcierre.blogspot.com


From: Fásiko <fas...@gmail.com>
Date: Mon, 9 Nov 2009 16:53:11 +0100
Subject: [codeigniter-spanish] Re: Problemas con Radio buttons

Patricio Avila

no leída,
9 nov 2009, 16:28:529/11/09
a codeignit...@googlegroups.com
Bueno amigos dejo la solucon a mi problema por si a alguien le sirve(cosa que no creo porque acá la mayoría sabe mas que yo :-()

//Rescata el valor seleccionado de un radio button
function valor_radio(radios)
{
  for(i=0; i<  document.getElementsByName(radios).length; i++)
  {
      if (document.getElementsByName(radios)[i].checked)
          break;
  }
  return document.getElementsByName(radios)[i].value
}

//llamada a la funcion
function enviarCorreos()
{
 //Le pasamos como argumento el nombre del control radio button
  alert(valor_radio('turno'))

}



saludos

Fásiko

no leída,
9 nov 2009, 19:18:339/11/09
a codeignit...@googlegroups.com
Creo que quedaría mejor si pones el return en el lugar del break y más que nada es por varios motivos, pero uno bastante claro.
Si no se encuentra ninguno chekeado, retorna el valor del último y lógicamente eso no es correcto.
Así que desde mi punto de vista, algo más optimizado sería:
function valor_radio(radios)
{
  var total = document.getElementsByName(radios).length;
  for( i=0 ; i < total ; i++ )
  {
      if ( document.getElementsByName(radios)[i].checked )
          return document.getElementsByName(radios)[i].value;
  }
  return false;  
}

Como buenas costumbres, lo mejor es guardar el valor de un objeto en una variable si se va a utilizar en un bucle, así ahorraremos un tanto en memoria.
Si se encuentra, se retorna el valor, pero si no se encuentra, se retorna false. Así sobraría con llamar a la función dentro de un if (por ejemplo)...

if( valor = valor_radio(radios) )
{
  //lo que pasaría si se ha seleccionado
  // ya tenemos el valor del campo en la variable valor
}
else
{
  //lo que pasaría si no se ha seleccionado
}


Patricio Avila

no leída,
9 nov 2009, 19:27:319/11/09
a Codeigniter
Como siempre haces pedazos mi solución, pero esa es la idea mejoramiento continuo ;-)

Patricio Avila Figueroa
Usuario Linux #454898
Sent from my BlackBerry® wireless device
http://indenti.ca/elkan
http://palcierre.blogspot.com


From: Fásiko <fas...@gmail.com>
Date: Tue, 10 Nov 2009 01:18:33 +0100
Subject: [codeigniter-spanish] Re: Problemas con Radio buttons

Responder a todos
Responder al autor
Reenviar
0 mensajes nuevos