установите все флажки - PullRequest
3 голосов
/ 14 июля 2011

У меня есть таблица с флажками, и я хочу установить флажки «проверить все» и «снять все флажки», но я не смог найти способ проверить все флажки.

Вот мой код:

<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> 

Ответы [ 8 ]

8 голосов
/ 14 июля 2011
$(function() {
    $('.chk_boxes').click(function() {
        $('.chk_boxes1').prop('checked', this.checked);
    });
});

Это влияет только на поле check all. Но зачем вам в любом случае использовать два флажка?Один, чтобы проверить все и один, чтобы снять все, но не взаимоисключающие.Это должен быть рецепт, чтобы сбить с толку пользователей:)

3 голосов
/ 14 июля 2011

См. Рабочий раствор здесь http://jsfiddle.net/HBGzy/

вам не нужно использовать флажок " uncheck all ":)

$('.chk_boxes').click(function(){
    var chk = $(this).attr('checked')?true:false;
    $('.chk_boxes1').attr('checked',chk);
});
3 голосов
/ 14 июля 2011

Попробуйте использовать true|false.Вот так:

$('.chk_boxes1').attr('checked',true);

Дополнительный комментарий:

Кроме того, кажется, что ваш un- и проверяет все флажки являются избыточными.

<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
1 голос
/ 14 июля 2011

Попробуйте это

 $(".chk_boxes").click(function()
   {
   var checked_status = this.checked;
   $(".chk_boxes1").each(function()
     {
      this.checked = checked_status;
     });
  });

Таким образом, если имя класса всех флажков, на которые вы хотите установить флажок или снимите флажок с классом chk_boxes, равно chk_boxes1, то будут получены все элементы и соответственно установлено свойство selected.

1 голос
/ 14 июля 2011

Вы забыли о кавычках:

$('.chk_boxes1').attr('checked','checked')

скрипка: http://jsfiddle.net/8ZHFn/

0 голосов
/ 14 июля 2011

Советы по поводу проверки всех / снять все .. Как я полагаю, после выбора check all, если пользователь нажимает на любой из checkbox1s, флажок check all должен быть снят, а также, не нажимая флажок check all, если пользователь выбирает все checkbox1s один за другим, флажок должен быть установлен. Поэтому я предлагаю вам попробовать это при использовании check 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)
    })
});
0 голосов
/ 14 июля 2011
<script type="text/javascript" charset="utf-8">
$('document').ready( function() {
    $('.chk_boxes').click( function() {
        $(':checkbox').attr('checked',true);
    });
});
</script>
0 голосов
/ 14 июля 2011

Я думаю, вы должны использовать true или false для атрибута checkbox.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...