ElementPlus Checkbox 多選框

2021-09-07 15:18 更新

Checkbox 多選框

一組備選項(xiàng)中進(jìn)行多選

基礎(chǔ)用法

單獨(dú)使用可以表示兩種狀態(tài)之間的切換,寫在標(biāo)簽中的內(nèi)容為 checkbox 按鈕后的介紹。


在el-checkbox元素中定義v-model綁定變量,單一的checkbox中,默認(rèn)綁定變量的值會是Boolean,選中為true。

<template>
  <div>
    <el-checkbox v-model="checked1" label="備選項(xiàng)1"></el-checkbox>
    <el-checkbox v-model="checked2" label="備選項(xiàng)2"></el-checkbox>
  </div>
  <div>
    <el-checkbox v-model="checked3" label="備選項(xiàng)1" size="medium"></el-checkbox>
    <el-checkbox v-model="checked4" label="備選項(xiàng)2" size="medium"></el-checkbox>
  </div>
  <div>
    <el-checkbox v-model="checked5" label="備選項(xiàng)1" size="small"></el-checkbox>
    <el-checkbox v-model="checked6" label="備選項(xiàng)2" size="small"></el-checkbox>
  </div>
  <div>
    <el-checkbox v-model="checked7" label="備選項(xiàng)1" size="mini"></el-checkbox>
    <el-checkbox v-model="checked8" label="備選項(xiàng)2" size="mini"></el-checkbox>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        checked1: true,
        checked2: false,
        checked3: false,
        checked4: false,
        checked5: false,
        checked6: false,
        checked7: false,
        checked8: false,
      }
    },
  }
</script>

禁用狀態(tài)

多選框不可用狀態(tài)。


設(shè)置disabled屬性即可。

indeterminate 狀態(tài)

indeterminate 屬性用以表示 checkbox 的不確定狀態(tài),一般用于實(shí)現(xiàn)全選的效果


<template>
  <el-checkbox v-model="checked1" disabled>備選項(xiàng)1</el-checkbox>
  <el-checkbox v-model="checked2" disabled>備選項(xiàng)</el-checkbox>
</template>

<script>
  export default {
    data() {
      return {
        checked1: false,
        checked2: true,
      }
    },
  }
</script>

多選框組

適用于多個(gè)勾選框綁定到同一個(gè)數(shù)組的情景,通過是否勾選來表示這一組選項(xiàng)中選中的項(xiàng)。


checkbox-group元素能把多個(gè) checkbox 管理為一組,只需要在 Group 中使用v-model綁定Array類型的變量即可。 el-checkbox 的 label屬性是該 checkbox 對應(yīng)的值,若該標(biāo)簽中無內(nèi)容,則該屬性也充當(dāng) checkbox 按鈕后的介紹。label與數(shù)組中的元素值相對應(yīng),如果存在指定的值則為選中狀態(tài),否則為不選中。

<template>
  <el-checkbox-group v-model="checkList">
    <el-checkbox label="復(fù)選框 A"></el-checkbox>
    <el-checkbox label="復(fù)選框 B"></el-checkbox>
    <el-checkbox label="復(fù)選框 C"></el-checkbox>
    <el-checkbox label="禁用" disabled></el-checkbox>
    <el-checkbox label="選中且禁用" disabled></el-checkbox>
  </el-checkbox-group>
</template>

<script>
  export default {
    data() {
      return {
        checkList: ['選中且禁用', '復(fù)選框 A'],
      }
    },
  }
</script>

indeterminate 狀態(tài)

indeterminate 屬性用以表示 checkbox 的不確定狀態(tài),一般用于實(shí)現(xiàn)全選的效果


<template>
  <el-checkbox
    :indeterminate="isIndeterminate"
    v-model="checkAll"
    @change="handleCheckAllChange"
    >全選</el-checkbox
  >
  <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>
</template>

<script>
  const cityOptions = ['上海', '北京', '廣州', '深圳']
  export default {
    data() {
      return {
        checkAll: false,
        checkedCities: ['上海', '北京'],
        cities: cityOptions,
        isIndeterminate: true,
      }
    },
    methods: {
      handleCheckAllChange(val) {
        this.checkedCities = val ? cityOptions : []
        this.isIndeterminate = false
      },
      handleCheckedCitiesChange(value) {
        let checkedCount = value.length
        this.checkAll = checkedCount === this.cities.length
        this.isIndeterminate =
          checkedCount > 0 && checkedCount < this.cities.length
      },
    },
  }
</script>

可選項(xiàng)目數(shù)量的限制

使用 min 和 max 屬性能夠限制可以被勾選的項(xiàng)目的數(shù)量。

<template>
  <el-checkbox-group v-model="checkedCities" :min="1" :max="2">
    <el-checkbox v-for="city in cities" :label="city" :key="city"
      >{{city}}</el-checkbox
    >
  </el-checkbox-group>
</template>

<script>
  const cityOptions = ['上海', '北京', '廣州', '深圳']
  export default {
    data() {
      return {
        checkedCities: ['上海', '北京'],
        cities: cityOptions,
      }
    },
  }
</script>

按鈕樣式

按鈕樣式的多選組合。

只需要把el-checkbox元素替換為el-checkbox-button元素即可。此外,Element Plus 還提供了size屬性。

<template>
  <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>
  <div style="margin-top: 20px">
    <el-checkbox-group v-model="checkboxGroup3" size="small">
      <el-checkbox-button
        v-for="city in cities"
        :label="city"
        :disabled="city === '北京'"
        :key="city"
        >{{city}}</el-checkbox-button
      >
    </el-checkbox-group>
  </div>
  <div style="margin-top: 20px">
    <el-checkbox-group v-model="checkboxGroup4" size="mini" disabled>
      <el-checkbox-button v-for="city in cities" :label="city" :key="city"
        >{{city}}</el-checkbox-button
      >
    </el-checkbox-group>
  </div>
</template>

<script>
  const cityOptions = ['上海', '北京', '廣州', '深圳']
  export default {
    data() {
      return {
        checkboxGroup1: ['上海'],
        checkboxGroup2: ['上海'],
        checkboxGroup3: ['上海'],
        checkboxGroup4: ['上海'],
        cities: cityOptions,
      }
    },
  }
</script>

帶有邊框

設(shè)置border屬性可以渲染為帶有邊框的多選框。

<template>
  <div>
    <el-checkbox v-model="checked1" label="備選項(xiàng)1" border></el-checkbox>
    <el-checkbox v-model="checked2" label="備選項(xiàng)2" border></el-checkbox>
  </div>
  <div style="margin-top: 20px">
    <el-checkbox
      v-model="checked3"
      label="備選項(xiàng)1"
      border
      size="medium"
    ></el-checkbox>
    <el-checkbox
      v-model="checked4"
      label="備選項(xiàng)2"
      border
      size="medium"
    ></el-checkbox>
  </div>
  <div style="margin-top: 20px">
    <el-checkbox-group v-model="checkboxGroup1" size="small">
      <el-checkbox label="備選項(xiàng)1" border></el-checkbox>
      <el-checkbox label="備選項(xiàng)2" border disabled></el-checkbox>
    </el-checkbox-group>
  </div>
  <div style="margin-top: 20px">
    <el-checkbox-group v-model="checkboxGroup2" size="mini" disabled>
      <el-checkbox label="備選項(xiàng)1" border></el-checkbox>
      <el-checkbox label="備選項(xiàng)2" border></el-checkbox>
    </el-checkbox-group>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        checked1: true,
        checked2: false,
        checked3: false,
        checked4: true,
        checkboxGroup1: [],
        checkboxGroup2: [],
      }
    },
  }
</script>

Checkbox Attributes

參數(shù)說明類型可選值默認(rèn)值
model-value / v-model綁定值string / number / boolean
label選中狀態(tài)的值(只有在checkbox-group或者綁定對象類型為array時(shí)有效)string / number / boolean / object
true-label選中時(shí)的值string / number
false-label沒有選中時(shí)的值string / number
disabled是否禁用booleanfalse
border是否顯示邊框booleanfalse
sizeCheckbox 的尺寸stringmedium / small / mini
name原生 name 屬性string
checked當(dāng)前是否勾選booleanfalse
indeterminate設(shè)置 indeterminate 狀態(tài),只負(fù)責(zé)樣式控制booleanfalse

Checkbox Events

事件名稱說明回調(diào)參數(shù)
change當(dāng)綁定值變化時(shí)觸發(fā)的事件更新后的值

Checkbox-group Attributes

參數(shù)說明類型可選值默認(rèn)值
model-value / v-model綁定值array
size多選框組尺寸stringmedium / small / mini
disabled是否禁用booleanfalse
min可被勾選的 checkbox 的最小數(shù)量number
max可被勾選的 checkbox 的最大數(shù)量number
text-color按鈕形式的 Checkbox 激活時(shí)的文本顏色string#ffffff
fill按鈕形式的 Checkbox 激活時(shí)的填充色和邊框色string#409EFF

Checkbox-group Events

事件名稱說明回調(diào)參數(shù)
change當(dāng)綁定值變化時(shí)觸發(fā)的事件更新后的值

Checkbox-button Attributes

參數(shù)說明類型可選值默認(rèn)值
label選中狀態(tài)的值(只有在checkbox-group或者綁定對象類型為array時(shí)有效)string / number / boolean / object
true-label選中時(shí)的值string / number
false-label沒有選中時(shí)的值string / number
disabled是否禁用booleanfalse
name原生 name 屬性string
checked當(dāng)前是否勾選booleanfalse


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號