Foros del Web » Programando para Internet » Javascript »

onchange al hacer checkall

Estas en el tema de onchange al hacer checkall en el foro de Javascript en Foros del Web. Buenas amigos, tengo una serie de checkbox que se pueden tildar de a uno o hay un boton que tilda a todos. en cada checkbox ...
  #1 (permalink)  
Antiguo 31/07/2013, 13:44
 
Fecha de Ingreso: noviembre-2009
Mensajes: 381
Antigüedad: 15 años, 1 mes
Puntos: 6
onchange al hacer checkall

Buenas amigos,

tengo una serie de checkbox que se pueden tildar de a uno o hay un boton que tilda a todos.

en cada checkbox hay un evento onchange que manda un parametro a la funcion que esta dentro.

Ahora si tildo un checkbox el onchange lo reconoce, pero al hacerle el checkall no.

Como hago para que al hacer checkall reconozca el evento onchange de cada checkbox???

Muchas gracias,
Gustav.
  #2 (permalink)  
Antiguo 31/07/2013, 13:46
 
Fecha de Ingreso: noviembre-2009
Mensajes: 381
Antigüedad: 15 años, 1 mes
Puntos: 6
Respuesta: onchange al hacer checkall

Aqui el codigo:

Código Javascript:
Ver original
  1. checked = false;
  2.             function checkedAll(fmNewCicle)
  3.             {
  4.                 var chk = document.getElementById('fmNewCicle');
  5.                
  6.                 if(checked == false)
  7.                 {
  8.                     checked = true;
  9.                 }
  10.                 else
  11.                 {
  12.                     checked = false;
  13.                 }
  14.                
  15.                 for(var i=0; i<chk.elements.length; i++)
  16.                 {
  17.                     chk.elements[i].checked = checked;
  18.                    
  19.                     //alert(chk.elements[i].id);
  20.                 }
  21.             }
  22.  
  23.             function incluirCheck(id)
  24.             {
  25.                 alert(id);
  26.             }

Código PHP:
Ver original
  1. <input type="checkbox" id="incluir['.$i.']"  name="incluir['.$i.']" onchange='incluirCheck("'.$i.'");' />
  #3 (permalink)  
Antiguo 31/07/2013, 13:57
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 7 meses
Puntos: 528
Respuesta: onchange al hacer checkall

Pues dentro de tu función que los checa todos puedes llamar a la función que se ejecuta cuando se checa uno.

Código Javascript:
Ver original
  1. for(var i=0; i<chk.elements.length; i++){
  2.         chk.elements[i].checked = checked;
  3.         incluirCheck($i);
  4.         //alert(chk.elements[i].id);
  5. }
  #4 (permalink)  
Antiguo 31/07/2013, 14:01
 
Fecha de Ingreso: noviembre-2009
Mensajes: 381
Antigüedad: 15 años, 1 mes
Puntos: 6
Respuesta: onchange al hacer checkall

Gracias!!!

Pero sabes que si lo uso con el $i no funciona, es que este $i es un valor de php!!!
  #5 (permalink)  
Antiguo 31/07/2013, 14:24
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 7 meses
Puntos: 528
Respuesta: onchange al hacer checkall

Perdón por un error, no debería ser

Código Javascript:
Ver original
  1. for(var i=0; i<chk.elements.length; i++){
  2.         chk.elements[i].checked = checked;
  3.         incluirCheck($i);
  4.         //alert(chk.elements[i].id);
  5. }

si no

Código Javascript:
Ver original
  1. for(var i=0; i<chk.elements.length; i++){
  2.         chk.elements[i].checked = checked;
  3.         incluirCheck(i);
  4.         //alert(chk.elements[i].id);
  5. }

(sin el $)


Si aún así no coinciden, es cosa de ver en qué posición empieza $i dentro de php para empatarla en js.

En tu js puedo ver que i empieza en 0.

Si por alguna razón en php empezara en 1, se puede hacer

Código Javascript:
Ver original
  1. for(var i=0; i<chk.elements.length; i++){
  2.         chk.elements[i].checked = checked;
  3.         incluirCheck(i+1);//o bien la cantidad que se necesite.
  4.         //alert(chk.elements[i].id);
  5. }

Etiquetas: funcion, onchange
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:13.