Form-checkbox多选框

<!--单独使用可以表示两种状态之间的切换,写在标签中的内容为 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是否禁用booleanfalse
border是否显示边框booleanfalse
sizeCheckbox 的尺寸,仅在 border 为真时有效stringmedium / small / mini
:indeterminate设置 indeterminate 状态,只负责样式控制(用于实现全选,全选或全不选该值为false,表示以确定状态)booleanfalse

Checkbox Events

事件名称说明回调参数
@change当绑定值变化时触发的事件更新后的值(值为bool)

 

Checkbox-group Attributes

参数说明类型可选值默认值
size多选框组尺寸,仅对按钮形式的 Checkbox 或带有边框的 Checkbox 有效stringmedium / small / mini
disabled是否禁用booleanfalse
min可被勾选的 checkbox 的最小数量number
max可被勾选的 checkbox 的最大数量number

Checkbox-group Events

事件名称说明回调参数
@change当绑定值变化时触发的事件更新后的值(值为选中的复选框的值构成的数组)

Checkbox-button Attributes

参数说明类型可选值默认值
label选中状态的值(只有在checkbox-group或者绑定对象类型为array时有效)string / number / boolean
disabled是否禁用booleanfalse

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
el-checkbox-group是Element UI中的一个多选框组件,用于选择多个选项。要校验el-checkbox-group是否必填,可以使用Element UI提供的表单验证规则。 首先,你需要在el-form-item中使用prop属性来标识el-checkbox-group的字段名。然后,在el-form中使用rules属性来定义验证规则。 以下是一个示例代码,演示如何校验el-checkbox-group是否必填: ```html <template> <el-form :model="form" :rules="rules" ref="form"> <el-form-item label="多选框组" prop="checkboxGroup"> <el-checkbox-group v-model="form.checkboxGroup"> <el-checkbox label="选项1"></el-checkbox> <el-checkbox label="选项2"></el-checkbox> <el-checkbox label="选项3"></el-checkbox> </el-checkbox-group> </el-form-item> <el-button type="primary" @click="submitForm">提交</el-button> </el-form> </template> <script> export default { data() { return { form: { checkboxGroup: [] // 多选框组的值 }, rules: { checkboxGroup: [ { required: true, message: '请选择至少一个选项', trigger: 'change' } ] } }; }, methods: { submitForm() { this.$refs.form.validate(valid => { if (valid) { // 表单验证通过,执行提交操作 // ... } else { // 表单验证不通过,提示错误信息 // ... } }); } } }; </script> ``` 在上述代码中,我们通过rules属性定义了checkboxGroup字段的验证规则,其中required为true表示必填,message为验证不通过时的错误提示信息,trigger为change表示在多选框组的值发生变化时触发验证。 当点击提交按钮时,调用submitForm方法进行表单验证。如果验证通过,则执行提交操作;如果验证不通过,则提示错误信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值