반응형
* checkbox 요건
- [전체선택] 클릭 시 하위 checkbox 모두 체크
- [전체선택] 클릭 시 하위 checkbox 모두 체크 해제
- 하위 checkbox 모두 체크 시 [전체선택] 체크
- 하위 checkbox 하나라도 뺄 시 [전체선택] 체크해제
전체선택 |
checkbox HTML
<table>
<tr style="background:grey">
<td>
<input type="checkbox" id="checkAll" onclick="checkAllClick()"> 전체선택
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="checkedIdx" class="checktype" value="1" onclick="checkBoxValueChanged()">
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="checkedIdx" class="checktype" value="2" onclick="checkBoxValueChanged()">
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="checkedIdx" class="checktype" value="3" onclick="checkBoxValueChanged()">
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="checkedIdx" class="checktype" value="4" onclick="checkBoxValueChanged()">
</td>
</tr>
</table>
Javascript 로 checkbox 이벤트 만들기
const checkBoxes = document.getElementsByName('checkedIdx');
//[전체선택] 클릭 시 하위 checkbox 모두 체크 또는 체크 해제
function checkAllClick(){
if(document.getElementById('checkAll').checked){
for(var i=0;i<checkBoxes.length;i++){
checkBoxes[i].checked = true;
}
}else{
for(var i=0;i<checkBoxes.length;i++){
checkBoxes[i].checked = false;
}
}
}
//하위 checkbox 체크 여부에 따른 [전체선택] checkbox 체크 변경
function checkBoxValueChanged(){
var checkedCnt = 0;
for(let i=0; i<checkBoxes.length;i++){
if(checkBoxes[i].checked){
checkedCnt ++;
}
}
if(checkedCnt == checkBoxes.length){
document.getElementById('checkAll').checked = true;
}else{
document.getElementById('checkAll').checked = false;
}
}
jquery로 checkbox 이벤트 만들기
//[전체선택] 클릭 시 하위 checkbox 모두 체크 또는 체크 해제
$('#checkAll').click(function(){
if($('#checkAll').is(':checked')){
$('.checktype').prop("checked",true);
}else{
$('.checktype').prop("checked",false);
}
});
//하위 checkbox 체크 여부에 따른 [전체선택] checkbox 체크 변경
$('.checktype').click(function(){
if($('input[class=checktype]:checked').length == $('input[class=checktype]').length){
$('#checkAll').prop("checked",true);
}else{
$('#checkAll').prop("checked",false);
}
});
반응형
'코딩 관련 > Javascript와 jQuery, JSON' 카테고리의 다른 글
[JavaScript][JQuery] jquery 정규식 영문,숫자만 사용 체크 등 (0) | 2020.10.01 |
---|---|
[AJAX] AJAX 데이터 한글 깨짐 현상 (0) | 2020.09.28 |
[jQuery][AJAX] java.lang.IllegalStateException AJAX 데이터 형식 (0) | 2020.09.22 |
[JavaScript] HTML 테이블 행 추가하기 삭제하기 (0) | 2020.09.17 |
[jQuery] select 선택값 disabled인 경우 전달 안 되는 현상 (0) | 2020.09.16 |