Вы можете решить вашу проблему, используя приведенный ниже код, где вы можете создать одну функцию, чтобы получить количество отмеченных флажков, скажем, showChecked
. Прикрепите обработчик событий щелчка для checkAll
и для chk
флажков.
CheckAll
Обработчик событий можно использовать для проверки / снятия флажков всех chk
флажков согласно текущему значению checkAll и вызова функции showChecked
чтобы рассчитывать. В chk
обработчике кликов вы можете вызвать функцию, чтобы получить счетчик, а также поставить или снять галочку checkAll
в соответствии с общим счетчиком проверенного состояния chk
флажки
$(function(){
$("#checkAll").on('click', function(){
$(".chk").prop("checked", $(this).is(":checked"));
showChecked();
});
$(".chk").on('change', function(){
if($(".chk").length != $('.chk:checked').length){
$("#checkAll").prop('checked', false);
}
showChecked();
});
});
function showChecked(){
$("#result").html($('.chk:checked').length);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>
<input type="checkbox" id="checkAll" /> Check / Uncheck All
<input type="checkbox" name="chk" class="chk" value="option1" /> Option 1
<input type="checkbox" name="chk" class="chk" value="option2" /> Option 2
<input type="checkbox" name="chk" class="chk" value="option3" /> Option 3
<p id="result"></p>