Я имел эту таблицу: JQuery проверить все флажки в столбце
Когда я нажмите кнопку «Проверить все» в одном столбце, его предполагается, что все флажки в этом столбце с проверены и в противном случае. Вот мой JQuqey:
$(document).ready(function() {
$('[id^="check_"]').on('click', function(){
perm_type=$(this).attr('id');
type=perm_type.substring(6);
if(!($('#check_'+type).attr('checked'))) {
$("[id^=client_type_"+type+"]").attr('checked', true);
$('#check_'+type).attr('checked', true);
}
else {
$("[id^=client_type_"+type+"]").attr('checked',false);
$('#check_'+type).attr('checked',false);
}
});
});
Там мой HTML:
echo '<tr bgcolor="'.($bgcol[$inx % 2]).'"><td></td><td></td><td></td><td></td><td></td><td></td></tr>';
echo '<tr bgcolor="'.($bgcol[$inx % 2]).'">';
echo '<td valign="top" align="center"><b>';
echo $row['title'];
echo '</b></td>';
echo '<td valign="top" align="center">';
echo '<b>Clients Types</b>';
echo '</td>';
echo '<td valign="top" align="center">';
echo "<input type='checkbox' id='check_select'> Check all";
echo '</td>';
echo '<td valign="top" align="center">';
echo "<input type='checkbox' id='check_insert'> Check all";
echo '</td>';
echo '<td valign="top" align="center">';
echo "<input type='checkbox' id='check_update'> Check all";
echo '</td>';
echo '<td valign="top" align="center">';
echo "<input type='checkbox' id='check_delete'> Check all";
echo '</td>';
echo "</tr>";
$nr=0;
$cli = //my query here;
$result=$db->sql_query($cli);
while($r=$db->sql_fetchrow($result)){
$s =$db->sql_fetchrow($db->sql_query(//my query here"));
echo '<tr bgcolor="'.($bgcol[$inx % 2]).'">';
echo '<td></td><td valign="top" align="center">';
echo $r['type'];
echo "<input type='hidden' id='cli_type_id".$nr."' value='".$r['type_id']."'>";
echo '</td>';
echo '<td valign="top" align="center">';
echo "<input type='checkbox' name='rights[".$r['type_id']."][select]' id='client_type_select".$nr."' value='true' "; echo $s['sel']?"checked":""; echo ">";
echo '</td>';
echo '<td valign="top" align="center">';
echo "<input type='checkbox' name='rights[".$r['type_id']."][insert]' id='client_type_insert".$nr."' value='true' "; echo $s['ins']?"checked":""; echo ">";
echo '</td>';
echo '<td valign="top" align="center">';
echo "<input type='checkbox' name='rights[".$r['type_id']."][update]' id='client_type_update".$nr."' value='true' "; echo $s['upd']?"checked":""; echo ">";
echo '</td>';
echo '<td valign="top" align="center">';
echo "<input type='checkbox' name='rights[".$r['type_id']."][delete]' id='client_type_delete".$nr."' value='true' "; echo $s['del']?"checked":""; echo ">";
echo '</td>';
echo "</tr>";
$nr++;
}
Текущий результат: Когда один чек/снимите флажок в первый раз «проверить все», это делает функцию, но если я снова проверяю «проверить все», это ничего не значит. Пожалуйста, помогите мне!
Имея HTML вместо PHP будет удобнее. –
Показать фактическую разметку HTML. Серверный PHP-код бесполезен, поскольку клиентский код JavaScript не взаимодействует с ним. Кроме того, когда вы отлаживаете JavaScript, на какой строке появляется неожиданное поведение? Вы разбираете значения, которые вы ожидаете? Определяют ли ваши селекторы jQuery элементы, которые вы ожидаете? – David
Почему вы перехватываете событие click вместо изменения? Это заставляет вас менять флажок самостоятельно. –