You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将jQuery实现的全页面取消勾选所有复选框功能改写为Vue版本

jQuery取消全选功能的Vue实现方案

首先要注意Vue的核心设计是数据驱动视图,和jQuery直接操作DOM的思路完全不同,优先通过修改响应式数据实现效果,不推荐主动操作DOM。

最优实现方案(数据驱动,推荐)

所有复选框的选中状态统一绑定同一个响应式数组,取消全选时直接清空数组即可:

模板代码

<!-- 取消全选按钮 -->
<button @click="handleUncheckAll">取消全部勾选</button>

<!-- 复选框列表,v-model绑定同一个数组 -->
<input type="checkbox" value="选项1" v-model="checkedList"> 选项1
<input type="checkbox" value="选项2" v-model="checkedList"> 选项2
<input type="checkbox" value="选项3" v-model="checkedList"> 选项3

脚本代码

选项式API(Vue2/Vue3通用)

<script>
export default {
  data() {
    return {
      // 存储所有已勾选复选框的value值
      checkedList: []
    }
  },
  methods: {
    handleUncheckAll() {
      // 清空数组后所有绑定的复选框会自动取消勾选
      this.checkedList = []
    }
  }
}
</script>

Vue3 <script setup> 语法

<script setup>
import { ref } from 'vue'
// 响应式数组
const checkedList = ref([])
const handleUncheckAll = () => {
  checkedList.value = []
}
</script>

特殊场景兼容方案(操作DOM,不推荐)

如果确实无法统一绑定数组,可以通过ref获取DOM节点修改checked属性,仅在迫不得已时使用:

模板代码

<button @click="handleUncheckAll">取消全部勾选</button>
<!-- 所有需要批量操作的复选框绑定同一个ref -->
<input type="checkbox" ref="checkboxGroup"> 选项1
<input type="checkbox" ref="checkboxGroup"> 选项2
<input type="checkbox" ref="checkboxGroup"> 选项3

脚本代码

选项式API

<script>
export default {
  methods: {
    handleUncheckAll() {
      this.$refs.checkboxGroup.forEach(el => {
        el.checked = false
      })
    }
  }
}
</script>

Vue3 <script setup> 语法

<script setup>
import { ref } from 'vue'
const checkboxGroup = ref([])
const handleUncheckAll = () => {
  checkboxGroup.value.forEach(el => {
    el.checked = false
  })
}
</script>

内容的提问来源于stack exchange,提问作者MiltonCogswell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 05:15:01