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
<table style="width:420px;" id="tablaEncontrados"> <tbody class="Secundario AlternarColor" style="width:450px; overflow:scroll;"> <!--<tr><td></td><td><input id="chkPrtEncontradosTODOS" type="checkbox" name="" onchange="activarTodosChkColecc('chkPrtEncontrados')"></td></tr>--> <?php for ($i = 0; $i <= count($encontrados) -1; $i++) { ?><tr><?php echo '<td>'.$encontrados[$i]['Reference'].' - '.substr($encontrados[$i]['Name'],0,30).'...</td>'; ?></tr><?php } ?> </tbody> </table>
Código Javascript:
Ver original
function activarDesactivarChk(nombreCheck,nombreColeccion) { var resultado = ComprobarCheck(nombreCheck); if ( resultado === 'true') { alert('entra en true, ' + resultado); activarTodosChkColecc(nombreColeccion); } else { alert('entra en false, ' + resultado); desactivarTodosChkColecc(nombreColeccion); } } function activarTodosChkColecc(donde) { $('input[type=checkbox].' + donde).each(function(){ activarCheck(this.name,true); }); } function desactivarTodosChkColecc(donde) { $('input[type=checkbox].' + donde).each(function(){ //alert(this.name); activarCheck(this.name,false); }); } function activarCheck(nombreCheck,activo) { alert(nombreCheck + ' , ' + activo); $("#"+ nombreCheck).attr('checked', activo); }
(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!