Foros del Web » Programando para Internet » Javascript »

Marcar y desmarcar todos los checkboxes con uno solo

Estas en el tema de Marcar y desmarcar todos los checkboxes con uno solo en el foro de Javascript en Foros del Web. He mirado por el foro y lo que he encontrado es para crear 2 checkboxes, uno para marcar todos y otro para desmarcarlos, pero mi ...
  #1 (permalink)  
Antiguo 25/08/2010, 09:08
 
Fecha de Ingreso: julio-2010
Mensajes: 121
Antigüedad: 14 años, 4 meses
Puntos: 0
Marcar y desmarcar todos los checkboxes con uno solo

He mirado por el foro y lo que he encontrado es para crear 2 checkboxes, uno para marcar todos y otro para desmarcarlos, pero mi idea es que con el mismo checkbox, me marque todos si hay alguno sin marcar, y si estan todos marcados, que al pulsarlo, me desmarque todos.

Ademas necesito hacerlo para 2 partes diferentes, 2 secciones diferentes, eso imagino que podria hacerlo con alguna variable para diferenciarlas, pero sobre lo primero no se como hacerlo la verdad.

Un saludo y gracias.
  #2 (permalink)  
Antiguo 25/08/2010, 14:51
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: Marcar y desmarcar todos los checkboxes con uno solo

Hola

Sería algo como esto
Código Javascript:
Ver original
  1. function funcion(bol, frm) {
  2. for (var i=0;i < frm.elements.length;i++) {
  3. elemento = frm.elements[i];
  4. elemento.checked = (bol) ? true : false;
  5. }
  6. }
Código HTML:
Ver original
  1. <form name="f">
  2. <input type="checkbox" name="a[]" value="" onclick="funcion(this.checked, this.form);" />
  3. <input type="checkbox" name="a[]" value="" />
  4. <input type="checkbox" name="a[]" value="" />
  5. <input type="checkbox" name="a[]" value="" />
  6. <input type="checkbox" name="a[]" value="" />
  7. <input type="checkbox" name="a[]" value="" />
  8. </form>
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />

Última edición por Adler; 25/08/2010 a las 15:44 Razón: dar el html
  #3 (permalink)  
Antiguo 26/08/2010, 01:41
 
Fecha de Ingreso: julio-2010
Mensajes: 121
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Marcar y desmarcar todos los checkboxes con uno solo

Hola Adler, lo he probado y me funciona bien salvo por una cosilla, tengo 3 apartados diferentes, es decir, es como si tuviese 3 secciones diferentes de checkboxes, y con tu codigo al marcar el TODOS me marca absolutamente todos los checkboxes del formulario, pero me gustari marcar solo una parte....

No se si me explico, por ejemplo tengo:


ELIJA DIA:

TODOS LUNES MARTES MIERCOLES..........


ELIJA HORA

TODAS 12:00 13:00 14:00...............


Todo pertenece al mismo formulario, pero obviamente quiero que al marcar TODOS en dia, me marque solo LUNES, MARTES..... al igual con las horas.

Creo que se podria hacer todo con la misma funcion, pero no veo el modo....
  #4 (permalink)  
Antiguo 26/08/2010, 07:50
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: Marcar y desmarcar todos los checkboxes con uno solo

Hola

Has de hacer algunos pequeños cambios a la función. Obtienes el nombre del campo, para aislar los campos que tengan ese nombre.
Cita:
function funcion(bol, frm, chkbox) {
for (var i=0;i < frm.elements[chkbox].length;i++) { // Dentro de todos los elementos, seleccionamos lo que tengan el mismo nombre que el seleccionado
elemento = frm.elements[chkbox][i]; // Ahora es bidimensional
elemento.checked = (bol) ? true : false;
}
}
Ahora la llamada a la función quedaría así
Cita:
funcion(this.checked, this.form, this.name)
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 27/08/2010, 10:24
 
Fecha de Ingreso: julio-2010
Mensajes: 121
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Marcar y desmarcar todos los checkboxes con uno solo

Muchisimas gracias Adler!!!

Me ha funcionado de maravilla a la primera, que sencillo era modificarlo y que no di con ello.

Muchas gracias de nuevo :)

Etiquetas: checkboxes
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 04:55.