VUE全选
2018-06-13 本文已影响16人
_____西班木有蛀牙
效果如下:
![](https://img.haomeiwen.com/i5811981/0aaa7285a86c341d.gif)
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<link href="https://cdn.bootcss.com/materialize/1.0.0-beta/css/materialize.min.css" rel="stylesheet">
</head>
<body>
<div class="container" id="app">
<form action="#">
<p v-for="(v, k, i) in list">
<label>
<input class="filled-in" type="checkbox" :value="v.id" v-model="form.check" />
<span>{{v.name}}</span>
</label>
</p>
<p>
<div class="switch">
<label>
取消全选
<input type="checkbox" @change="checkChange" :checked="form.check.length === list.length">
<span class="lever"></span>
全选
</label>
</div>
</p>
</form>
</div>
<script src="https://cdn.bootcss.com/vue/2.5.15/vue.min.js"></script>
<script>
var app = new Vue({
el: '#app',
data: {
form: {
check: []
},
list: [{
name: 'name 1',
id: 1
}, {
name: 'name 2',
id: 2
}, {
name: 'name 3',
id: 3
}, {
name: 'name 4',
id: 4
}, {
name: 'name 5',
id: 5
}]
},
methods: {
checkChange: function (event) {
if (event.target.checked) {
let arr = []
for (item in this.list) {
arr.push(this.list[item].id)
}
this.form.check = arr
} else {
this.form.check = []
};
}
}
})
</script>
</body>
</html>