当前位置:首页 > VUE

vue复选框实现

2026-02-21 15:14:19VUE

Vue 复选框实现方法

基础实现

使用 v-model 双向绑定到布尔值,适用于单个复选框:

<template>
  <input type="checkbox" v-model="isChecked" />
  <label>{{ isChecked ? '已选中' : '未选中' }}</label>
</template>

<script>
export default {
  data() {
    return {
      isChecked: false
    }
  }
}
</script>

多选框组

绑定到数组实现多选功能:

vue复选框实现

<template>
  <div v-for="option in options" :key="option.value">
    <input 
      type="checkbox" 
      :value="option.value" 
      v-model="selectedOptions"
    />
    <label>{{ option.label }}</label>
  </div>
</template>

<script>
export default {
  data() {
    return {
      options: [
        { value: 'vue', label: 'Vue' },
        { value: 'react', label: 'React' },
        { value: 'angular', label: 'Angular' }
      ],
      selectedOptions: []
    }
  }
}
</script>

自定义样式

通过隐藏原生输入框,用 CSS 自定义样式:

vue复选框实现

<template>
  <label class="custom-checkbox">
    <input type="checkbox" v-model="checked" />
    <span class="checkmark"></span>
    自定义样式复选框
  </label>
</template>

<style>
.custom-checkbox {
  position: relative;
  padding-left: 25px;
  cursor: pointer;
}
.custom-checkbox input {
  position: absolute;
  opacity: 0;
}
.checkmark {
  position: absolute;
  top: 0;
  left: 0;
  height: 18px;
  width: 18px;
  background-color: #eee;
}
.custom-checkbox input:checked ~ .checkmark {
  background-color: #2196F3;
}
.checkmark:after {
  content: "";
  position: absolute;
  display: none;
}
.custom-checkbox input:checked ~ .checkmark:after {
  display: block;
}
</style>

表单验证

配合 Vue 的表单验证库如 VeeValidate:

<template>
  <ValidationProvider rules="required" v-slot="{ errors }">
    <input type="checkbox" v-model="acceptedTerms" />
    <span>同意条款</span>
    <span class="error">{{ errors[0] }}</span>
  </ValidationProvider>
</template>

动态禁用状态

根据条件禁用复选框:

<template>
  <input 
    type="checkbox" 
    v-model="isActive" 
    :disabled="isDisabled"
  />
</template>

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

标签: 复选框vue
分享给朋友:

相关文章

vue实现 toast

vue实现 toast

Vue 实现 Toast 组件 在 Vue 中实现 Toast 组件可以通过多种方式完成,以下是几种常见的方法: 使用全局组件和事件总线 创建一个全局的 Toast 组件,并通过事件总线或 Vue…

vue实现长按

vue实现长按

Vue 实现长按功能的方法 在 Vue 中实现长按功能可以通过原生事件监听或自定义指令完成。以下是几种常见实现方式: 使用原生事件监听 通过 @mousedown 和 @mouseup 或 @tou…

vue底层实现

vue底层实现

Vue.js 的底层实现原理 Vue.js 是一个渐进式 JavaScript 框架,其核心实现主要包括响应式系统、虚拟 DOM、模板编译和组件化机制。以下是其关键实现细节: 响应式系统 Vue 2…

vue实现computed

vue实现computed

Vue 中 computed 的实现原理 computed 属性是 Vue 的一个核心特性,它基于响应式依赖进行缓存,仅在依赖发生变化时重新计算。以下是 computed 的实现方式: 基本用法 在…

vue实现抽屉

vue实现抽屉

Vue 实现抽屉组件 抽屉组件是一种常见的 UI 模式,通常用于从屏幕边缘滑出内容。以下是几种实现抽屉的方法: 使用 Vue 原生实现 创建一个基本的抽屉组件,利用 Vue 的过渡和条件渲染功能。…

vue怎么实现加减

vue怎么实现加减

Vue实现加减功能的方法 使用v-model绑定数据 在Vue中可以通过v-model双向绑定数据,结合methods方法实现加减功能。定义一个数字变量,通过按钮触发增减方法。 <templa…