DEV/JavaScript

JavaScript 체크박스 전체선택 및 해제

Imvory 2021. 9. 30. 18:11

체크박스 관련해서 자주쓰는 코드는 정리해놓으려고 작성한다.

검색하기 귀찮아 .. 

 

전체선택

<input type="checkbox" id="cboxAll" name="cboxAll" onclick="checkAll();">
<input type="checkbox" name="cbox" id="checkbox1">
<input type="checkbox" name="cbox" id="checkbox2">

다음과 같이 전체선택용 체크박스와 일반 체크박스 2개가 있다고 가정하면,

function checkAll() {
	if($("#cboxAll").is(':checked')) {
		$("input[name=cbox]").prop("checked", true);
	} else {
		$("input[name=cbox]").prop("checked", false);
	}
}

이렇게 전체선택 및 해제가 가능하다.

 

하위 체크박스 1,2가 선택되었을때 전체선택에 체크가 되게하거나

전체선택이 체크된 상태에서 체크박스가 1개라도 체크가 해제될 경우

>> 전체선택 체크가 해제되어야함

$(document).on("click", "input:checkbox[name=cbox]", function(e) {
	
	var chks = document.getElementsByName("cbox");
	var chksChecked = 0;
	
	for(var i=0; i<chks.length; i++) {
		var cbox = chks[i];
		
		if(cbox.checked) {
			chksChecked++;
		}
	}
	
	if(chks.length == chksChecked){
		$("#cboxAll").prop("checked", true);
	}else{
		$("#cboxAll").prop("checked",false);
	}
	
});

 체크박스가 클릭될 때 이벤트를 주기