Mam 4 przyciski w tym kodzie. Przy wyborze przycisku "WSZYSTKO" chciałbym, aby pozostałe 3 przyciski, aby odznaczyć i odświeżyć. Oto, co mam:

$('div.regions').find('input:checked').each(function () {
    var id = this.id;
    var now = moment();
    if (id == "ALL")
    {
        if (item.Date >= now){ data.push(item); }

    }
    else if (id == item.Region)
    {
        if (item.Date >= now){ data.push(item); }
    }
});

Oto jsfiddle kodu: http://jsfiddle.net/zhvyh/ Czy ktoś może pomóc?

1
Bacon2305 22 listopad 2013, 03:27

2 odpowiedzi

Najlepsza odpowiedź

Zaktualizowano JSFiddle - http://jsfiddle.net/zhvyh/5/

var checkboxes = $('div.regions input[type="checkbox"]:not([id="ALL"])');

$('div.regions input[type="checkbox"]').on({
    'change': function(){
        var checkbox = $(this);

        if(checkbox.attr('id') == 'ALL'){
            checkboxes.prop('checked',checkbox.prop('checked')).checkboxradio('refresh');
        }
        else {
            $('#ALL').prop('checked',(checkboxes.length == $('div.regions input[type="checkbox"]:checked:not([id="ALL"])').length)).checkboxradio('refresh');
        }
    }
});
3
NaNpx 21 listopad 2013, 23:51

Po sprawdzeniu #ALL usuń atrybut checked ze wszystkich innych linii brzegowych, a następnie odśwież je.

var checkboxes = $('div.regions input[type="checkbox"]:not([id="ALL"])');

$('#ALL').on({
    'click': function(){
        if (this.checked) {
            checkboxes.removeAttr('checked').checkboxradio("refresh");
        }
    }
});

http://jsfiddle.net/Zhvyh/6/

1
MattDiamant 22 listopad 2013, 00:05