반응형
서론
vue.js 개발하면서 자주 사용하는 checkBox 전체선택을 쉽게 정리하기 위해 정리합니다.
소스
vue
<template>
<div id="example-3">
수신동의 :
<input type="checkbox" value="all" v-model="allSelected" />
<label for="all">전체</label>
<template v-for="(item, index) in checkList">
<input
type="checkbox"
:id="item"
:value="item"
v-model="selectList"
:key="index"
/>
<label :for="item" :key="index + '1'"> {{ item }}</label>
</template>
<br />
<span>check: {{ selectList }}</span>
</div>
</template>
<script>
export default {
data() {
return {
checkList: ["e-mail", "SMS", "test1"],
selectList: [],
};
},
computed: {
allSelected: {
//getter
get: function() {
return this.checkList.length === this.selectList.length;
},
//setter
set: function(e) {
this.selectList = e ? this.checkList : [];
},
},
},
};
</script>
설명
data : checkList 와 사용자가 선택한 selectList
computed : 전체선택 allSelected 를 get/set 으로 설정.
get은 checkList와 selectList의 길이가 같으면 true, 그외는 false로 전체선택 checkBox를 제어한다.
set은 사용자가 선택한 selectList 데이터에 true일때는 checkList 를 set, 그외는 [](빈값) 을 set한다.
테스트
* 테스트 소스 : https://github.com/hjh830827/test-project1
CheckBoxAllSelect.vue에서 확인 가능합니다.
* 질문 내용 checkbox disabled 적용
반응형
'vue.js > vue.js 기능' 카테고리의 다른 글
[vue.js] vue scroll 시 header fixed(by eventListener) (0) | 2022.05.26 |
---|---|
[vue.js] filter 사용법 및 자주 사용하는 filter 정리 (0) | 2022.05.03 |
[vue.js] radio click시 validation 체크 후 checked 제어 문제 및 해결 방법 (1) | 2021.03.30 |
[vue.js] v-text-field 한글 입력 막기 (4) | 2021.03.10 |
vue.js - vue-awesome-swiper loop options 오류 2탄 (2) | 2021.03.03 |