当前位置:首页 > 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实现曲线

vue实现曲线

Vue 实现曲线的方法 在 Vue 中实现曲线可以通过多种方式,包括使用 SVG、Canvas 或第三方库如 D3.js、ECharts 等。以下是几种常见的方法: 使用 SVG 绘制曲线 SVG…

vue实现定时

vue实现定时

Vue 实现定时功能的方法 使用 setInterval 和 clearInterval 在 Vue 中可以通过 setInterval 和 clearInterval 实现定时功能。在组件的 mou…

vue实现layout

vue实现layout

Vue 实现 Layout 布局的方法 在 Vue 中实现 Layout 布局通常涉及路由嵌套、组件化设计和动态渲染。以下是几种常见的实现方式: 使用嵌套路由 通过 Vue Router 的嵌套路由…

vue实现卡片

vue实现卡片

Vue 实现卡片组件的方法 使用 Vue 实现卡片组件可以通过多种方式完成,以下是几种常见的实现方法: 使用原生 HTML 和 CSS 在 Vue 单文件组件中,可以通过模板和样式直接实现卡片效果…

vue实现前端录制

vue实现前端录制

Vue 实现前端录制功能 前端录制通常包括音频、视频或屏幕录制,结合Vue框架可以通过浏览器API实现。以下是几种常见录制场景的实现方法: 音频录制 使用浏览器MediaRecorder API实现…

vue实现文字复制

vue实现文字复制

Vue 实现文字复制的几种方法 使用 Clipboard API 在 Vue 中可以通过调用浏览器的 Clipboard API 实现文字复制功能。该方法兼容现代浏览器,无需额外依赖。 method…