Skip to content

Checkbox 多选框

在一组备选项中进行多选。

基础用法

通过 CheckboxGroupv-model 绑定选中值数组,Checkboxvalue 设置选项值。

当前选中:[ "上海", "北京" ]

<script setup>
import { ref } from 'vue'
import Checkbox from '@/vue/components/Checkbox/Checkbox.vue'
import CheckboxGroup from '@/vue/components/Checkbox/CheckboxGroup.vue'
const checked = ref(['上海', '北京'])
</script>
<template>
  <CheckboxGroup v-model="checked">
    <Checkbox value="上海" label="上海" />
    <Checkbox value="北京" label="北京" />
    <Checkbox value="广州" label="广州" />
    <Checkbox value="深圳" label="深圳" />
  </CheckboxGroup>
  <p style="margin-top: 10px; color: #606266;">当前选中:{{ checked }}</p>
</template>

禁用状态

CheckboxGroup 上设置 disabled 可以禁用整组多选框。

<script setup>
import { ref } from 'vue'
import Checkbox from '@/vue/components/Checkbox/Checkbox.vue'
import CheckboxGroup from '@/vue/components/Checkbox/CheckboxGroup.vue'
const checked = ref(['上海'])
</script>
<template>
  <CheckboxGroup v-model="checked" disabled>
    <Checkbox value="上海" label="上海" />
    <Checkbox value="北京" label="北京" />
    <Checkbox value="广州" label="广州" />
  </CheckboxGroup>
</template>

可选数量限制

通过 minmax 属性限制可选的数量范围。

最少选 1 项,最多选 3 项

当前选中:[ "上海", "北京" ]

<script setup>
import { ref } from 'vue'
import Checkbox from '@/vue/components/Checkbox/Checkbox.vue'
import CheckboxGroup from '@/vue/components/Checkbox/CheckboxGroup.vue'
const checked = ref(['上海', '北京'])
</script>
<template>
  <p style="margin-bottom: 10px; color: #909399; font-size: 14px;">最少选 1 项,最多选 3 项</p>
  <CheckboxGroup v-model="checked" :min="1" :max="3">
    <Checkbox value="上海" label="上海" />
    <Checkbox value="北京" label="北京" />
    <Checkbox value="广州" label="广州" />
    <Checkbox value="深圳" label="深圳" />
    <Checkbox value="杭州" label="杭州" />
  </CheckboxGroup>
  <p style="margin-top: 10px; color: #606266;">当前选中:{{ checked }}</p>
</template>

React 用法

tsx
import { useState } from 'react'
import { Checkbox, CheckboxGroup } from '@bobocn/element/react'
import '@bobocn/element/style.css'

// 基础用法
function App() {
  const [checked, setChecked] = useState(['上海', '北京'])

  return (
    <CheckboxGroup modelValue={checked} onChange={setChecked}>
      <Checkbox value="上海">上海</Checkbox>
      <Checkbox value="北京">北京</Checkbox>
      <Checkbox value="广州">广州</Checkbox>
      <Checkbox value="深圳">深圳</Checkbox>
    </CheckboxGroup>
  )
}

// 禁用整组
<CheckboxGroup modelValue={checked} disabled onChange={setChecked}>
  <Checkbox value="上海">上海</Checkbox>
  <Checkbox value="北京">北京</Checkbox>
</CheckboxGroup>

// 数量限制(最少1项,最多3项)
<CheckboxGroup modelValue={checked} min={1} max={3} onChange={setChecked}>
  <Checkbox value="上海">上海</Checkbox>
  <Checkbox value="北京">北京</Checkbox>
  <Checkbox value="广州">广州</Checkbox>
  <Checkbox value="深圳">深圳</Checkbox>
</CheckboxGroup>

API

CheckboxGroup 属性 (Attributes)

属性名说明类型默认值
modelValue / v-model绑定值Array<string | number | boolean>
disabled是否禁用booleanfalse
min最少选中数量number
max最多选中数量number

CheckboxGroup 事件 (Events)

事件名说明回调参数
change绑定值变化时触发(value: Array<string | number | boolean>) => void

CheckboxGroup 插槽 (Slots)

插槽名说明
defaultCheckbox 组件

Checkbox 属性 (Attributes)

属性名说明类型默认值
value多选框的值(配合 CheckboxGroup 使用)string | number | boolean
label标签文字string
disabled是否禁用booleanfalse
checked是否选中(独立使用时)booleanfalse
name原生 name 属性string

Checkbox 插槽 (Slots)

插槽名说明
default自定义标签内容

基于 MIT 许可发布