checkbox全選/全不選,子復選框全選父復選框選中
阿新 • • 發佈:2018-01-15
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全選/全不選,子復選框全選父復選框選中