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 ...
 
Antiguo 05/11/2011, 19:01
Avatar de Richifredo  
Fecha de Ingreso: noviembre-2011
Mensajes: 5
Antigüedad: 13 años, 11 meses
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.
 
Antiguo 05/11/2011, 20:53
Avatar de DataLore  
Fecha de Ingreso: junio-2008
Mensajes: 58
Antigüedad: 17 años, 4 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í.
 
Antiguo 06/11/2011, 07:05
Avatar de Richifredo  
Fecha de Ingreso: noviembre-2011
Mensajes: 5
Antigüedad: 13 años, 11 meses
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> 
 
Antiguo 06/11/2011, 09:09
Avatar de DataLore  
Fecha de Ingreso: junio-2008
Mensajes: 58
Antigüedad: 17 años, 4 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 20:55.