Foros del Web » Programando para Internet » Javascript »

recorrer un select multiple

Estas en el tema de recorrer un select multiple en el foro de Javascript en Foros del Web. ¿Como puedo saber en un <select multiple cuantas líneas hay marcadas? Se que es usando la propiedad .length pero no sé como....
  #1 (permalink)  
Antiguo 05/07/2005, 04:43
 
Fecha de Ingreso: noviembre-2003
Mensajes: 383
Antigüedad: 20 años, 5 meses
Puntos: 2
recorrer un select multiple

¿Como puedo saber en un <select multiple cuantas líneas hay marcadas?

Se que es usando la propiedad .length pero no sé como.
  #2 (permalink)  
Antiguo 05/07/2005, 09:04
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola pellagofio

Te pongo un ejemplo:
Código PHP:
  obj document.forms[0].nombreSelect;
  
num =0;
  for (
i=0opt=obj.options[i];i++)
    if (
opt.selectednum++;
  
alert(num+' marcados'); 
Saludos,
  #3 (permalink)  
Antiguo 05/07/2005, 09:41
 
Fecha de Ingreso: noviembre-2003
Mensajes: 383
Antigüedad: 20 años, 5 meses
Puntos: 2
Con esto lo que recorres son las opciones del select (por ejemplo puede tener 10 opciones) pero el usuario marca 3 opciones (ya que es un select multiple puede marcar más de uno).

¿Como puedo saber cuantas opciones hay marcadas?
  #4 (permalink)  
Antiguo 05/07/2005, 09:55
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola de nuevo.

Te comento el código:
Código PHP:
  num =0// inicio una variable para usar como contador
  
for (i=0opt=obj.options[i];i++) // recorro todas las opciones del select
    
if (opt.selectednum++; // si la opción está seleccionada sumo 1 a la variable
  
alert(num+' marcados'); // muesto el resultado 
Saludos,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:30.