Foros del Web » Programando para Internet » Javascript »

Utilizar variable en llamada a checkbox desde una funcion

Estas en el tema de Utilizar variable en llamada a checkbox desde una funcion en el foro de Javascript en Foros del Web. Hace tiempo que uso este portal para ayudarme en la programacion, y hasta hoy no habia tenido la necesidad de dejar ningun mensaje, pero no ...
  #1 (permalink)  
Antiguo 05/11/2011, 19:01
Avatar de Richifredo  
Fecha de Ingreso: noviembre-2011
Mensajes: 5
Antigüedad: 13 años
Puntos: 0
Utilizar variable en llamada a checkbox desde una funcion

Hace tiempo que uso este portal para ayudarme en la programacion, y hasta hoy no habia tenido la necesidad de dejar ningun mensaje, pero no me funciona lo que quiero hacer, nisiquiera leyendoos :)

Estoy creando un portal con unos 300 checkbox o_O que estaran agrupados en grupos de 6, lo cual me deja con unos 50 grupos.
Los nombres de los checkbox quiero que tengan la siguiente estructura:
Para el primer grupo:
"primergrupo1"
"primergrupo2"
"primergrupo3"
Para el segundo grupo:
"segundogrupo1"
"segundogrupo2"
"segundogrupo3"

A la hora de llamar a la funcion con el onClick, quiero que el nombre dado al checkbox, lo descomponga por un lado el string y por otro el entero, que compruebe con el string el grupo al que pertenece y con el entero el numero del checkbox para marcar los anteriores del grupo y desmarcar los siguientes, pero ahi es donde me quedo atascado y os pido ayuda!! :)

Esta es la creacion de los checks:
Código HTML:
<tr>
  <td>Primer Grupo</td>
  <td>
    <input type=checkbox name="primergrupo1" onClick="rellenar(this.name)">
    <input type=checkbox name="primergrupo2" onClick="rellenar(this.name)">
    <input type=checkbox name="primergrupo3" onClick="rellenar(this.name)">
  </td>
</tr>
<tr>
  <td>Segundo Grupo</td>
  <td>
    <input type=checkbox name="segundogrupo1" onClick="rellenar(this.name)">
    <input type=checkbox name="segundogrupo2" onClick="rellenar(this.name)">
    <input type=checkbox name="segundogrupo3" onClick="rellenar(this.name)">
  </td>
</tr> 
Y esta seria la funcion en javascript:
Código HTML:
<script>
  function rellenar(b) {
    longitud = b.length;
    nombre = b.substring(0,longitud-1)
    if (b.lastIndexOf(1) != -1) {
      document.form1.nombre+'1'.checked = true;
      document.form1.nombre+'2'.checked = false;
      document.form1.nombre+'3'.checked = false;
    } else if (b.lastIndexOf(2) != -1) {
      document.form1.nombre+'1'.checked = true;
      document.form1.nombre+'2'.checked = true;
      document.form1.nombre+'3'.checked = false;
    } else if (b.lastIndexOf(3) != -1) {
      document.form1.nombre+'1'.checked = true;
      document.form1.nombre+'2'.checked = true;
      document.form1.nombre+'3'.checked = true;
    }
  }
</script> 
Las llamadas tipo "document.form1.nombre+'1'.checked = true;" de la funcion las he probado de un monton de maneras y sigo sin saber como hacerlas. A ver si me podeis echar un cable.
  #2 (permalink)  
Antiguo 05/11/2011, 20:53
Avatar de DataLore  
Fecha de Ingreso: junio-2008
Mensajes: 58
Antigüedad: 16 años, 5 meses
Puntos: 5
Respuesta: Utilizar variable en llamada a checkbox desde una funcion

Deberías hacer uso de la funcion getElementsByName(...), de todas maneras ten en cuenta que te dará un vector con todos los checks que se llamen así.
  #3 (permalink)  
Antiguo 06/11/2011, 07:05
Avatar de Richifredo  
Fecha de Ingreso: noviembre-2011
Mensajes: 5
Antigüedad: 13 años
Puntos: 0
Respuesta: Utilizar variable en llamada a checkbox desde una funcion

Perfecto. Al principio no sabia como hacerlo de esa manera, pero he acabado consiguiendolo. Gracias DataLore.

Ya que estoy, posteo como lo he dejado:

La creacion de los checks:
Código HTML:
<tr>
  <td>Primer Grupo</td>
  <td>
    <input type=checkbox name="primergrupo" id="0" onClick="rellenar(this)">
    <input type=checkbox name="primergrupo" id="1" onClick="rellenar(this)">
    <input type=checkbox name="primergrupo" id="2" onClick="rellenar(this)">
  </td>
</tr>
<tr>
  <td>Segundo Grupo</td>
  <td>
    <input type=checkbox name="segundogrupo" id="0" onClick="rellenar(this)">
    <input type=checkbox name="segundogrupo" id="1" onClick="rellenar(this)">
    <input type=checkbox name="segundogrupo" id="2" onClick="rellenar(this)">
  </td>
</tr> 
Y la funcion en javascript:
Código HTML:
<script>
  function rellenar(b) {
    elementos = document.getElementsByName(b.name);
    for (i = 0 ; i <= 5 ; i++) {
      if (i <= b.id) {
        elementos[i].checked = true;
      } else {
        elementos[i].checked = false;
      }
    }
  }
</script> 
  #4 (permalink)  
Antiguo 06/11/2011, 09:09
Avatar de DataLore  
Fecha de Ingreso: junio-2008
Mensajes: 58
Antigüedad: 16 años, 5 meses
Puntos: 5
Respuesta: Utilizar variable en llamada a checkbox desde una funcion

De nada. De todas maneras presta atención a ese html nuevo que pusiste. Estás utilizando id's repetidos algo que no es correcto pues puede llevarte a problemas a futuro.

Por otro lado te recomiendo que le des una mirada a una de las librerías de javascript mas populares de los últimos años: jquery. Con ella podrás tener un código mucho mas simplificado y simple de leer.

Etiquetas: checkbox, funcion, llamada, variables
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 13:11.