Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] solo funciona la primera vez: seleccionar todos los check de un grupo

Estas en el tema de solo funciona la primera vez: seleccionar todos los check de un grupo en el foro de Javascript en Foros del Web. EDITO Bueno como me pasa siempre.... m paso buscando una mañana y cuando me decido a buscar ayuda encuentro la solución al poco de publicar ...
  #1 (permalink)  
Antiguo 03/04/2014, 03:34
 
Fecha de Ingreso: noviembre-2011
Mensajes: 117
Antigüedad: 12 años, 5 meses
Puntos: 2
solo funciona la primera vez: seleccionar todos los check de un grupo

EDITO

Bueno como me pasa siempre.... m paso buscando una mañana y cuando me decido a buscar ayuda encuentro la solución al poco de publicar en el foro....

es tan simple como usar "prop" en vez de "attr", así de fácil:

$("#"+ nombreCheck).prop("checked", activo);

Buenas a todos,

Mi problema es que he tengo un check, que al activarlo/desactivarlo debe activar/desactivar todos los check del grupo que yo le digo.

La primera vez lo hace perfecto, pero luego ya no lo vuelve a hacer... no entiendo por qué, he probado otros códigos de otras personas pensando que hice algo mal, pero ocurre exactamente lo mismo.

Os pongo mi código:
Código HTML:
Ver original
  1. <table style="width:420px;" id="tablaEncontrados">
  2.       <tbody class="Secundario AlternarColor" style="width:450px; overflow:scroll;">
  3.       <!--<tr><td></td><td><input id="chkPrtEncontradosTODOS" type="checkbox" name="" onchange="activarTodosChkColecc('chkPrtEncontrados')"></td></tr>-->
  4.       <tr><td></td><td><input id="chkPrtEncontradosTODOS" type="checkbox" onchange="activarDesactivarChk('chkPrtEncontradosTODOS','chkPrtEncontrados')"></td></tr>
  5.         <?php
  6.            for ($i = 0; $i <= count($encontrados) -1; $i++)
  7.            {
  8.                ?><tr><?php
  9.  
  10.                echo '<td>'.$encontrados[$i]['Reference'].' - '.substr($encontrados[$i]['Name'],0,30).'...</td>';
  11.                 echo '<td><input class="chkPrtEncontrados" id="'.$encontrados[$i]['Reference'].'" type="checkbox" name="'.$encontrados[$i]['Reference'].'"></td>';
  12.  
  13.                 ?></tr><?php
  14.            }
  15.        ?>
  16.       </tbody>

Código Javascript:
Ver original
  1. function activarDesactivarChk(nombreCheck,nombreColeccion)
  2. {
  3.     var resultado = ComprobarCheck(nombreCheck);
  4.    
  5.    
  6.     if ( resultado === 'true')
  7.     {
  8.         alert('entra en true, ' + resultado);
  9.         activarTodosChkColecc(nombreColeccion);
  10.     }
  11.     else
  12.     {
  13.         alert('entra en false, ' + resultado);
  14.         desactivarTodosChkColecc(nombreColeccion);
  15.     }
  16. }
  17.  
  18. function activarTodosChkColecc(donde)
  19. {
  20.     $('input[type=checkbox].' + donde).each(function(){
  21.        
  22.         activarCheck(this.name,true);
  23.        
  24.     });
  25. }
  26.  
  27. function desactivarTodosChkColecc(donde)
  28. {
  29.     $('input[type=checkbox].' + donde).each(function(){
  30.         //alert(this.name);
  31.        
  32.         activarCheck(this.name,false);
  33.        
  34.     });
  35. }
  36. function activarCheck(nombreCheck,activo)
  37. {
  38.     alert(nombreCheck +  ' , ' + activo);
  39.     $("#"+ nombreCheck).attr('checked', activo);
  40. }

(Sé que podría ahorrarme funciones pero de momento he preferido separarlo todo en funciones muy concretas hasta saber qué ocurre)

espero que alguien pueda arrojar algo de luz a este problema, gracias de antemano!

Última edición por eamanesims; 03/04/2014 a las 04:00

Etiquetas: funcion, grupo, input, php, primera, vez
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 17:16.