Javascript取消勾选所有复选框功能至Vue

bejyjqdl  于 2022-12-25  发布在  Java
关注(0)|答案(2)|浏览(141)

我试图弄清楚这个函数将如何转换为Vue。我基本上想取消选中页面上所有选中的框。

$("#UncheckAll").click(function(){
$("input[type='checkbox']").prop('checked',false);
});
8ulbf1ek

8ulbf1ek1#

你可以创建一个数据属性并将其绑定到一个复选框,然后你的按钮在被按下时会修改该属性。
大概是这样的

<button @click='isChecked=false'>Uncheck</button>
<input v-model='isChecked' type='checkbox' />

在组件选项中:

data() { 
  return {
    isChecked: false
  }
}
ttcibm8c

ttcibm8c2#

尝试类似以下代码段的内容:

new Vue({
  el: '#demo',
  data: {
    items: [{id: 1, name: 'one'}, {id: 2, name: 'two'}, {id: 3, name: 'three'}],
    selected: []
  },
  computed: {
    toggleAll: {
      get: function () {
        return this.items ? this.selected.length == this.items.length : false;
      },
      set: function (value) {
        const selected = [];
        if (value) this.items.forEach((item) => selected.push(item.id));
        this.selected = selected;
      }
    }
  }
});
<script src="https://cdn.jsdelivr.net/vue/latest/vue.js"></script>
<div id="demo">
  <input type="checkbox" v-model="toggleAll" id="all">
  <label for="all" align="left">Toogle all</label>
  <li v-for="item in items" :key="item.id">
    <input type="checkbox" v-model="selected" :value="item.id" :id="item.id" number>
    <label :for="item.id">{{ item.name }}</label>
  </li>
</div>

相关问题