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<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>-->
<tr><td></td><td><input id="chkPrtEncontradosTODOS" type="checkbox" onchange="activarDesactivarChk('chkPrtEncontradosTODOS','chkPrtEncontrados')"></td></tr> <?php
for ($i = 0; $i <= count($encontrados) -1; $i++)
{
echo '<td>'.$encontrados[$i]['Reference'].' - '.substr($encontrados[$i]['Name'],0,30).'...
</td>';
echo '
<td><input class="chkPrtEncontrados" id="'.$encontrados[$i]['Reference'].'" type="checkbox" name="'.$encontrados[$i]['Reference'].'"></td>';
}
?>
Código Javascript
:
Ver originalfunction 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!