<!--单独使用可以表示两种状态之间的切换,写在标签中的内容为 checkbox 按钮后的介绍。
在el-checkbox元素中定义v-model绑定变量,单一的checkbox中,默认绑定变量的值会是Boolean,选中为true。-->
<el-checkbox v-model="checked">备选项</el-checkbox>
data() {
return {
checked: true
};
}
适用于多个勾选框绑定到同一个数组的情景,通过是否勾选来表示这一组选项中选中的项。
checkbox-group元素能把多个 checkbox 管理为一组,只需要在 Group 中使用v-model绑定Array类型的变量即可。
el-checkbox的 label属性是该 checkbox 对应的值,若该标签中无内容,则该属性也充当 checkbox 按钮后的介绍。
label与数组中的元素值相对应,如果存在指定的值则为选中状态,否则为不选中。
<el-checkbox-group v-model="checklist">
<el-checkbox label="复选框A"></el-checkbox>
<el-checkbox label="复选框B">bb</el-checkbox>
<el-checkbox label="复选框C"></el-checkbox>
<el-checkbox label="禁用" disabled></el-checkbox>
<el-checkbox label="选中且禁用" disabled></el-checkbox>
</el-checkbox-group>
data() {
return {
checklist: [ '选中且禁用', '复选框A']
};
}
<!--indeterminate 属性用以表示 checkbox 的不确定状态,一般用于实现全选的效果-->
<el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox>
<div style="margin: 15px 0;"></div>
<!--这里的事件函数不要加()和参数,但可以使用箭头函数加参数-->
<el-checkbox-group v-model="checkedCities" @change="handleCheckedCitiesChange">
<el-checkbox v-for="city in cities" :label="city" :key="city">{{city}}</el-checkbox>
</el-checkbox-group>
<script>
const cityOptions = ['上海', '北京', '广州', '深圳'];
new Vue({
el: '#app',
data() {
return {
checkAll: false,
checkedCities: ['上海', '北京'],
cities: cityOptions,
isIndeterminate: true
};
},
methods: {
handleCheckAllChange(val) {
//console.log(val);val是 是否选中'全选'的bool值
this.checkedCities = val ? cityOptions : [];
this.isIndeterminate = false;
},
handleCheckedCitiesChange(value) {
// console.log(value); value是选中的复选框的值构成的数组
let checkedCount = value.length;
this.checkAll = checkedCount === this.cities.length;
//有选择,但没全选,isIndeterminate为true(设置 indeterminate 状态,只负责样式控制)
this.isIndeterminate = checkedCount > 0 && checkedCount < this.cities.length;
}
}
})
</script>
<!--按钮样式的多选组合。
只需要把el-checkbox元素替换为el-checkbox-button元素即可。此外,Element 还提供了size属性。-->
<div>
<el-checkbox-group v-model="checkboxGroup1">
<el-checkbox-button v-for="city in cities" :label="city" :key="city">{{city}}</el-checkbox-button>
</el-checkbox-group>
</div>
<div style="margin-top: 20px">
<el-checkbox-group v-model="checkboxGroup2" size="medium">
<el-checkbox-button v-for="city in cities" :label="city" :key="city">{{city}}</el-checkbox-button>
</el-checkbox-group>
</div>
Checkbox Attributes
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
label | 选中状态的值(只有在checkbox-group 或者绑定对象类型为array 时有效) | string / number / boolean | — | — |
disabled | 是否禁用 | boolean | — | false |
border | 是否显示边框 | boolean | — | false |
size | Checkbox 的尺寸,仅在 border 为真时有效 | string | medium / small / mini | — |
:indeterminate | 设置 indeterminate 状态,只负责样式控制(用于实现全选,全选或全不选该值为false,表示以确定状态) | boolean | — | false |
Checkbox Events
事件名称 | 说明 | 回调参数 |
---|---|---|
@change | 当绑定值变化时触发的事件 | 更新后的值(值为bool) |
Checkbox-group Attributes
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
size | 多选框组尺寸,仅对按钮形式的 Checkbox 或带有边框的 Checkbox 有效 | string | medium / small / mini | — |
disabled | 是否禁用 | boolean | — | false |
min | 可被勾选的 checkbox 的最小数量 | number | — | — |
max | 可被勾选的 checkbox 的最大数量 | number | — | — |
¶Checkbox-group Events
事件名称 | 说明 | 回调参数 |
---|---|---|
@change | 当绑定值变化时触发的事件 | 更新后的值(值为选中的复选框的值构成的数组) |
Checkbox-button Attributes
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
label | 选中状态的值(只有在checkbox-group 或者绑定对象类型为array 时有效) | string / number / boolean | — | — |
disabled | 是否禁用 | boolean | — | false |