Foros del Web » Programando para Internet » Javascript »

Chequear todos los Checkbox a la vez

Estas en el tema de Chequear todos los Checkbox a la vez en el foro de Javascript en Foros del Web. Tengo un problemilla. Tengo un conjunto de checkbox y necesito que checkeando otro checkbox que he puesto separado del conjunto se checkeen todos los del ...
  #1 (permalink)  
Antiguo 12/12/2005, 04:16
 
Fecha de Ingreso: diciembre-2005
Mensajes: 25
Antigüedad: 18 años, 5 meses
Puntos: 0
Chequear todos los Checkbox a la vez

Tengo un problemilla. Tengo un conjunto de checkbox y necesito que checkeando otro checkbox que he puesto separado del conjunto se checkeen
todos los del conjunto y viceversa, es decir, que al desmarcarlo se me desmarquen tb los del grupo.
(para que os hagais una idea es exactamente igual que en el correo de hotmail)



Aver si alguien me puede ayudar, os lo agradeceria muxo


1 saludo
  #2 (permalink)  
Antiguo 12/12/2005, 04:25
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 hdssegado

Este mensaje te puede ayudar:

http://www.forosdelweb.com/f13/marcar-varios-checkbox-simultaneamente-236058/#post824974

Saludos,
  #3 (permalink)  
Antiguo 12/12/2005, 04:26
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Más o menos sería:

<fieldset id="conjunto" >
<input type="checkbox" name="check1" value="ch1" />
<input type="checkbox" name="check1" value="ch2" />
<input type="checkbox" name="check1" value="ch3" />
<input type="checkbox" name="check2" value="ch4" />
<input type="checkbox" name="check2" value="ch5" />
<input type="checkbox" name="check2" value="ch6" />

</fieldset>

<input type="checkbox" name="todos" value="todos" onclick="todos(this.checked)" />

Y en el head el script todos()...

Código:
function todos(valor) {
 for (var i = 0, total = document.getElementById("conjunto").getElementsByTagName("input"); i < total.length; i ++)
  total[i].checked = valor;
}
Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 12/12/2005, 04:29
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
¡Je, je!

Andando JavierB activo, no me extraña haber chocado

Saludetes
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 12/12/2005, 04:44
 
Fecha de Ingreso: diciembre-2005
Mensajes: 25
Antigüedad: 18 años, 5 meses
Puntos: 0
JavierB, no hay ningun ejemplo con un solo grupo de Checks, es que los que hay tienen todos dos grupos y tengo un jaleo mu grande en el script
  #6 (permalink)  
Antiguo 12/12/2005, 05:01
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

No sé si te has fijado en mi respuesta, en donde agrupé los checks dentro de un fieldset (faltaría un tag legend, pero para el caso, vale)

Si no entiendes, puedes poner tu código y explicar algo mejor tu duda.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 12/12/2005, 05:37
 
Fecha de Ingreso: noviembre-2005
Mensajes: 42
Antigüedad: 18 años, 5 meses
Puntos: 0
Yo he tenido que hacer algo parecido y la solución fue similar a la que propone caricatos, uséase:

Recorrer con un for todos los campos y utilizar algo del tipo:

Código PHP:
function marcarCampos(valor_booleano){
   var 
campo;
   for(
i=0i<numcamposi++){
      
campo "nombre_campo" i;
      
document.getElementById(campo).checked valor_booleano;
   }

A mi esto me ha funcionado a la perfección, espero que te sirva.
  #8 (permalink)  
Antiguo 13/12/2005, 03:07
 
Fecha de Ingreso: diciembre-2005
Mensajes: 25
Antigüedad: 18 años, 5 meses
Puntos: 0
Caricatos, muxas gracias, pero como se haria sin el fieldset, es decir con un form normal??
  #9 (permalink)  
Antiguo 13/12/2005, 10:55
 
Fecha de Ingreso: diciembre-2005
Mensajes: 25
Antigüedad: 18 años, 5 meses
Puntos: 0
Me puede ayudar alguien por favor??
  #10 (permalink)  
Antiguo 13/12/2005, 11:06
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 hdssegado

Esto no lo he probado, pero creo que funcionará:
Código:
function todos(valor) {
 for (var i = 0, total = document.forms[0].elements; i < total.length; i ++)
  total[i].checked = valor;
}
Saludos,
  #11 (permalink)  
Antiguo 14/12/2005, 04:41
 
Fecha de Ingreso: diciembre-2005
Mensajes: 25
Antigüedad: 18 años, 5 meses
Puntos: 0
Haber, tengo esto pero no me funciona,por favor exarme una mano

Código:
<html>
<head>
<script language="JavaScript">
function todos(valor) {
 for (var i = 0, total = document.forms[0].elements; i < total.length; i ++)
  total[i].checked = valor;

}
</script>
<head>

<body>
<form>
<input type="checkbox" name="check1" value="ch1" />
<input type="checkbox" name="check1" value="ch2" />
<input type="checkbox" name="check1" value="ch3" />
<input type="checkbox" name="check2" value="ch4" />
<input type="checkbox" name="check2" value="ch5" />
<input type="checkbox" name="check2" value="ch6" />

<input type="checkbox" name="todos" value="todos" onclick="todos(this.checked)" />
</form>
<body>

<html>
  #12 (permalink)  
Antiguo 14/12/2005, 05:10
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 hdssegado

El problema es que el nombre del checkbox y el de la función es el mismo. Ponlo así:

<input type="checkbox" name="todo" value="todos" onclick="todos(this.checked)" />

Saludos,
  #13 (permalink)  
Antiguo 14/12/2005, 05:14
 
Fecha de Ingreso: diciembre-2005
Mensajes: 25
Antigüedad: 18 años, 5 meses
Puntos: 0
Muxisimas gracias JavierB t lo agradezco muxo
  #14 (permalink)  
Antiguo 14/12/2005, 19:45
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 2 meses
Puntos: 6
Cita:
Iniciado por caricatos
Hola:

Más o menos sería:

<fieldset id="conjunto" >
<input type="checkbox" name="check1" value="ch1" />
<input type="checkbox" name="check1" value="ch2" />
<input type="checkbox" name="check1" value="ch3" />
<input type="checkbox" name="check2" value="ch4" />
<input type="checkbox" name="check2" value="ch5" />
<input type="checkbox" name="check2" value="ch6" />

</fieldset>

<input type="checkbox" name="todos" value="todos" onclick="todos(this.checked)" />

Y en el head el script todos()...

Código:
function todos(valor) {
 for (var i = 0, total = document.getElementById("conjunto").getElementsByTagName("input"); i < total.length; i ++)
  total[i].checked = valor;
}
Saludos
Qué bien hecho está. Además diferenciando para coger los elementos que sean de tipo "input" y no otros. Aunque eso último creo que no habría hecho falta, pues ya cogemos los elementos que queramos por id y podemos presuponer que no habrá otros.

¿Y hay alguna función para en vez de seleccionar por "Tag", seleccionar por "tipo" (para coger todos los "checkboxes", por ejemplo)?
  #15 (permalink)  
Antiguo 15/12/2005, 01:55
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Cita:
Iniciado por un_tio
Qué bien hecho está. Además diferenciando para coger los elementos que sean de tipo "input" y no otros. Aunque eso último creo que no habría hecho falta, pues ya cogemos los elementos que queramos por id y podemos presuponer que no habrá otros.

¿Y hay alguna función para en vez de seleccionar por "Tag", seleccionar por "tipo" (para coger todos los "checkboxes", por ejemplo)?
Bueno, gracias por el comentario

Aunque sea lógico que solo haya un elemento con un id determinado, una mala implementación del explorer genera el array de elementos con el mismo atributo name a partir de atributos id iguales...

document.getElementsByName(nombre)...
nombre = atributo name
nombre (en explorer) = atributo id

y de querer seleccionar solo los que sean checkboxes se conseguiría con una condición...

Código:
function todos(valor) {
 for (var i = 0, total = document.getElementById("conjunto").getElementsByTagName("input"); i < total.length; i ++)
  if (total[i].type == "checkbox")  total[i].checked = valor;
}
Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 02:02.