【发布时间】:2018-12-08 20:22:03
【问题描述】:
当我尝试使用 v-model 获取数组中每个复选框的值时,Check-all 功能停止工作。我在包括 stackoverflow 在内的不同门户网站上阅读了很多问题,人们说 v-model 不适用于 :checked 属性,我理解但找不到解决方案/替代代码来使其工作。
我尝试的第一个代码是使用第一个复选框选择所有复选框。这很好用。代码如下:
new Vue({
el: "#app",
data: {
selectAll:false
},
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<label>
<input type="checkbox" v-model="selectAll">
Select all
</label>
<br>
<label>
<input type="checkbox" :checked="selectAll" value="Item 1">
Item 1
</label>
<br>
<label>
<input type="checkbox" :checked="selectAll" value="Item 2">
Item 2
</label>
<br>
<label>
<input type="checkbox" :checked="selectAll" value="Item 3">
Item 3
</label>
</div>
我尝试的第二个代码是获取数组中每个复选框的值,但在这种情况下,“全选”会自动停止工作。代码如下:
new Vue({
el: "#app",
data: {
selectAll:false,
eachCheckbox: [],
},
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<label>
<input type="checkbox" v-model="selectAll">
Select all
</label>
<br>
<label>
<input type="checkbox" :checked="selectAll" value="Item 1" v-model="eachCheckbox">
Item 1
</label>
<br>
<label>
<input type="checkbox" :checked="selectAll" value="Item 2" v-model="eachCheckbox">
Item 2
</label>
<br>
<label>
<input type="checkbox" :checked="selectAll" value="Item 3" v-model="eachCheckbox">
Item 3
</label>
<br>
Selected checkbox values: {{eachCheckbox}}
</div>
我不知道如何进行这项工作。有人可以帮忙吗?
【问题讨论】:
标签: javascript vue.js vuejs2 vue-component