$('input[type="checkbox"]').change(function() {
var number = [];
$('input[type="checkbox"]:checked').each(function() {
number.push($(this).val());
});
if (number.length == 0) {
$('.category1').prop('checked', true);
loaddata();
} else if ($('#all').checked && number.length != 8) {
alert('it executed');
$('#all').attr('checked', false);
loaddata();
} else {
loaddata();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="expander-list" id="category">
<li>
<div class="radio" style="padding-left:0px">
<label>
<input type="checkbox" id="all" class="category1">all</label>
</div>
</li>
<li>
<div class="radio" style="padding-left:0px">
<label>
<input type="checkbox" name="filter[]" value="electronics" class="category1">Electronics</label>
</div>
</li>
<li>
<div class="radio" style="padding-left:0px">
<label>
<input type="checkbox" name="filter[]" value="kitchen" class="category1">Kitchen</label>
</div>
</li>
<li>
<div class="radio" style="padding-left:0px">
<label>
<input type="checkbox" name="filter[]" value="decoratives" class="category1">Decoratives/Interior</label>
</div>
</li>
<li>
<div class="radio" style="padding-left:0px">
<label>
<input type="checkbox" name="filter[]" value="homedecor" class="category1">Home Decor</label>
</div>
</li>
<li>
<div class="radio" style="padding-left:0px">
<label>
<input type="checkbox" name="filter[]" value="furnitures" class="category1">Furnitures</label>
</div>
</li>
<li>
<div class="radio" style="padding-left:0px">
<label>
<input type="checkbox" name="filter[]" value="toys" class="category1">Toys</label>
</div>
</li>
<li>
<div class="radio" style="padding-left:0px">
<label>
<input type="checkbox" name="filter[]" value="vehicles" class="category1">Vehicles</label>
</div>
</li>
</ul>
Меня беспокоит очень просто. нажав на все jQuery, выберете все флажки, но если один из них не отмечен, все флажки должны быть сняты. но он не снимает флажок для всех флажков даже в моем случае, если условие не выполняется, и это не предупреждает меня. Как его решить и заблаговременно.
'$ ('# all'). Checked' =>' $ ('# all'). Is (': checked') ' – Tushar
Используйте' prop() 'вместо' attr() 'for" boolean " HTML-атрибуты. Особенно избегайте сочетания обоих. –