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

Я пытаюсь установить флажок, чтобы установить / снять все остальные флажки.

Я использую этот код:

$("#checkall").toggle(   
    function () {
        $(".kselItems").attr('checked', 'checked');
    },
    function () {
        $(".kselItems").removeAttr("checked"); 
});

Это прекрасно работает, но по какой-то причине флажок с идентификатором checkall (тот, который должен заставить все работать) никогда не остаетсяпроверено.

Как это можно исправить?

Ответы [ 4 ]

7 голосов
/ 17 августа 2011

Будьте проще.Попробуйте это

$("#checkall").click(function() {
    $(".kselItems").attr('checked', this.checked);
});

Демо: http://jsfiddle.net/naveen/azkPR/

2 голосов
/ 17 августа 2011

Попробуйте снять флажок в ваших селекторах.

        $("#checkall").toggle(   
            function () {
                $(".kselItems:not(#checkall)").attr('checked', 'checked');
            },
            function () {
                $(".kselItems:not(#checkall)").removeAttr("checked"); 
        });
0 голосов
/ 19 сентября 2015

Вы можете попробовать с этим

$("#checkall").click(function() {
   $(".kselItems").prop('checked', this.checked);
});
0 голосов
/ 17 августа 2011

edit: пока я писал, xeno06 тоже ответил:)

когда вы нажимаете «checkall», он 1) устанавливает значение в флажок, а затем 2) вызывает функцию переключения, которая найдет «checkall» и переключит его обратно.

лучший способ - не помещать класс ".kselItems" в "checkAll" или, если "checkall" находится внутри ".ksleItems", использовать

$(".kselItems not(#checkall)").(...)

или

$(".kselItems").not("#checkall").(...)

для ясности я бы использовал решение naveen

$("#checkall").click(function() {
    $(".kselItems :checkbox").not("#checkall").attr('checked', this.checked);
});
...