У меня есть таблица с флажками, и я хочу установить флажки «check all» и «un-check all», но я не смог найти способ проверить все флажки.
Вот мой код:
<form> <?php foreach ($this->entries as $entry): ?> <tr class="table_head_seperator"> <td class="grid_info" width="32px" bgcolor="#f6f6f6"><input type="checkbox" class="chk_boxes1" name="to_delete[<?PHP echo $entry['id'] ?>]" /></td> <td class="grid_info" width="160px" bgcolor="#eeeeee"><span class="country_name"><?php echo $entry['user_name'] ?></span></td> <td class="grid_info" width="130px" bgcolor="#eeeeee"><span class="country_name"><?php echo $entry['date_created'] ?></span></td> <td class="grid_info" width="100px" bgcolor="#f6f6f6"><span class="country_name"><?php echo $entry['user_type_name'] ?></span></td> </tr> <?PHP endforeach; ?> <input type="checkbox" class="chk_boxes" label="check all" />check all <input type="checkbox" class="unchk_boxes" /> un-check all </form> <script type="text/javascript"> $(document).ready(function() { $('.chk_boxes').click(function(){ $('.chk_boxes1').attr('checked',checked) }) }); </script>
$(function() { $('.chk_boxes').click(function() { $('.chk_boxes1').prop('checked', this.checked); }); });
Это влияет только на поле « check all
. Но почему вы все равно хотите использовать два флажка? Один, чтобы проверить все и один, чтобы снять все флажки, но не взаимоисключающие. Это должен быть рецепт, чтобы запутать пользователей 🙂
Попробуйте использовать true|false
. Вот так:
$('.chk_boxes1').attr('checked',true);
Дополнительный комментарий:
Кроме того, кажется, что вы не уверены, и все флажки сброшены.
<input type="checkbox" class="chk_boxes" label="check all" />check all <input type="checkbox" class="unchk_boxes" /> un-check all
Вместо этого вы можете иметь только один флажок, который делает оба. Таким образом, ваш jQuery будет выглядеть так:
$(document).ready(function() { $('.chk_boxes').click(function(){ $('.chk_boxes1').attr('checked',$(this).attr('checked')); }) });
С HTML:
<input type="checkbox" class="chk_boxes" label="check all" />check all
См. Рабочее решение здесь http://jsfiddle.net/HBGzy/
вам не нужно использовать флажок « Снять отметку со всех » 🙂
$('.chk_boxes').click(function(){ var chk = $(this).attr('checked')?true:false; $('.chk_boxes1').attr('checked',chk); });
Вы забыли о котировках:
$('.chk_boxes1').attr('checked','checked')
скрипка: http://jsfiddle.net/8ZHFn/
Попробуй это
$(".chk_boxes").click(function() { var checked_status = this.checked; $(".chk_boxes1").each(function() { this.checked = checked_status; }); });
Таким образом, если имя класса всех chk_boxes
, которые вы хотите повлиять при проверке или снятии флажка с классом chk_boxes
, это chk_boxes1
это получит все элементы и соответственно настроит проверенное свойство.
я думаю, вы должны использовать true или false для атрибута checkbox.
<script type="text/javascript" charset="utf-8"> $('document').ready( function() { $('.chk_boxes').click( function() { $(':checkbox').attr('checked',true); }); }); </script>
Совет по проверке all / uncheck all .. Как я думаю, после выбора проверки все, если пользователь нажмет на любой из checkbox1s, флажок check all должен быть снят, а также без щелчка на флажке «Все», если пользователь каждый раз выбирает все checkbox1s, должен быть выбран. Поэтому я предлагаю вам попробовать это при использовании проверки all / uncheck all ..
$(document).ready(function() { $('.chk_boxes').click(function(){ $('.chk_boxes1').attr('checked',$(this).attr('checked')); }) $('.chk_boxes1').click(function(){ if($('.chk_boxes1').length == $('.chk_boxes1:checked').length) $('.chk_boxes').attr('checked',checked) else $('.chk_boxes').attr('checked',false) }) });