I just started learning vue.js, I have such a problem, I have multiple checkboxes some of them have the same value, As a result, checkboxes of the same value are checked at the same time, How can this problem be solved?
JavaScript
x
6
1
var app = new Vue({
2
el: '#app',
3
data: {
4
checkedNames:[]
5
}
6
})
JavaScript
1
12
12
1
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
2
<div id="app">
3
<input type="checkbox" id="jack" value="Jack" v-model="checkedNames">
4
<label for="jack">Jack</label>
5
<input type="checkbox" id="john" value="Jack" v-model="checkedNames">
6
<label for="jack">John</label>
7
<input type="checkbox" id="mike" value="Mike" v-model="checkedNames">
8
<label for="mike">Mike</label>
9
<br>
10
<span>Checked names: {{ checkedNames }}</span>
11
12
</div>
Advertisement
Answer
Try this:
JavaScript
1
7
1
const app = new Vue({
2
el: '#app',
3
data: () => ({ checkedNames:[] }),
4
computed: {
5
names: function() { return this.checkedNames.filter(e => e !== false); }
6
}
7
});
JavaScript
1
11
11
1
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
2
3
<div id="app">
4
<input type="checkbox" id="jack" true-value="Jack" v-model="checkedNames[0]">
5
<label for="jack">Jack</label>
6
<input type="checkbox" id="jack1" true-value="Jack" v-model="checkedNames[1]">
7
<label for="jack1">Jack</label>
8
<input type="checkbox" id="mike" true-value="Mike" v-model="checkedNames[2]">
9
<label for="mike">Mike</label><br>
10
<span>Checked names: {{ names }}</span>
11
</div>