怎么实现一层一层的判断?select组建可以吗?还是有其他简单的方法

11111111111111111111111111111111111111111111111111111111111111111

哇同款头像,代码如下,详细看注释

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div id="app">
      {{items}}
      <div v-for="(item,index) in items" :key="item.id">
        {{ item.name }}
        <!-- @change 修改checkbox状态时触发changeCheckbox函数 -->
        <!-- disabled 除了第一个多选框,只要上一个多选框没选中就禁用 -->
        <input
          @change="changeCheckbox(item.checked,index)" 
          type="checkbox"
          v-model="item.checked"
          :disabled="index>0 && !items[index-1].checked"
        />
      </div>
    </div>
    <!-- 引入vue cdn -->
    <script
      crossorigin="anonymous"
      integrity="sha512-XdUZ5nrNkVySQBnnM5vzDqHai823Spoq1W3pJoQwomQja+o4Nw0Ew1ppxo5bhF2vMug6sfibhKWcNJsG8Vj9tg=="
      src="https://lib.baomitu.com/vue/2.6.14/vue.min.js"
    ></script>
    <script>
      new Vue({
        el: "#app",
        data() {
          return {
            items: [
              { name: "1", checked: false},
              { name: "2", checked: false},
              { name: "3", checked: false},
              { name: "4", checked: false},
            ],
          };
        },
        methods: {
          changeCheckbox(checked, index) {
            if (!checked) {
              // 取消勾选时,将该下标以及之后的选中状态去除
              for (let i = index; i < this.items.length; i++)
                this.items[i].checked = false;
            }
          },
        },
      });
    </script>
  </body>
</html>

 

如有帮助请采纳回答~ 谢谢

这种需求,封装一个方法来实现更合适

练级选择框。组件库里有比如element-ui,antd vue. 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m