VUE全选

2018-06-13  本文已影响16人  _____西班木有蛀牙

效果如下:


GIF.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>
上一篇 下一篇

猜你喜欢

热点阅读