1. 程式人生 > >checkbox全選/全不選,子復選框全選父復選框選中

checkbox全選/全不選,子復選框全選父復選框選中

cte pro sta var click self style cli log

<input type="checkbox" class="optionListAll">/* 父復選框 */
<input type="checkbox" name="optionList">
<input type="checkbox" name="optionList">
<input type="checkbox" name="optionList">
<input type="checkbox" name="optionList">
<input type="checkbox" name="optionList">
<input type="checkbox" name="optionList"> <input type="checkbox" name="optionList">
var optionListAll = $(‘.optionListAll‘);
var allList= $(‘[name="optionList"]‘);
var listLength = allList.length; // 父復選框全選/全不選 optionListAll.on("click", function() { var self = $(this); var state = self.prop(‘checked‘); allList.each(
function() {
    var that = $(this); state ? that.prop(‘checked‘, true) : that.prop(‘checked‘, false); // 判斷父復選框是否選中,選中則子復選框全部選中 }) }); //子復選框 allList.each(function() {   var that = $(this); that.on(‘click‘, function () {     var selectedListLength = $(‘[name="optionList"]:checked‘); //
選中的長度     for(var i = 0; i < listLength; i++) {       if(!allList[i].checked) { // 子復選框有一個沒選擇,父復選框不選         optionListAll.prop(‘checked‘, false); } } if( selectedListLength.length === listLength) { // 子復選框都選擇,復選框選中
      optionListAll.prop(‘checked‘, true); } });

checkbox全選/全不選,子復選框全選父復選框選中