GradyYoung 2021-07-08 12:05 采纳率: 100%
浏览 186
已采纳

vue怎么实现全选获取value,vue的v-bind和v-model同时存在v-bind无效

html代码如下

        <input type="checkbox" v-model="checkAll">全选<br>
        <input type="checkbox" :value="v1" v-model="t" :checked="checkAll"><br>
        <input type="checkbox" :value="v2" v-model="t" :checked="checkAll"><br>
        <input type="checkbox" :value="v3" v-model="t" :checked="checkAll"><br>
        <div id="down">
          {{checkAll}}
          {{t}}
        </div>

js代码如下

new Vue({
      el:"#test",
      data:{
        checkAll:false,
        t:[],
        v1:"--1--",
        v2:"--2--",
        v3:"--3--",
      },
      methods:{

      }
    });

点击全选但是没有任何效果,
如果单个点击复选框的话,就可以成功的显示
需求是点击全选,会给数组t里面加三个复选框的value值

  • 写回答

3条回答 默认 最新

  • 黑白猫妈 2021-07-08 14:40
    关注

    来看,用watch监听可以实现,全选与非全选切换,如果数据多的话,其实可以直接把复选框的value直接放到一个数组里面,做全选的时候直接把数组项赋值给数组t比较方便

    <div id="box">
            <div>
                实打实大苏打
            </div>
            全选<input type="checkbox" v-model="checkAll"/><br>
            v1<input type="checkbox" :value="v1" v-model="t"><br>
            v2<input type="checkbox" :value="v2" v-model="t"><br>
            v3<input type="checkbox" :value="v3" v-model="t"><br>
            <div id="down">
              {{checkAll}}
              {{t}}
              {{v1}}
              {{v2}}
              {{v3}}
            </div>
        </div>
    
    <script type="text/javascript">
        var myvue = new Vue({
            el:'#box',
            data:{
                checkAll:false,
                t:[],
                v1:"--1--",
                v2:"--2--",
                v3:"--3--",
            },
            created() {
                console.log('成功了')
            },
            watch:{
                checkAll(newvalue, oldvalue){
                    if(newvalue){
                        this.t = [this.v1, this.v2, this.v3];
                    }
                },
                t: {
                    handler(newvalue, oldvalue) {
                        if(newvalue.length < 3){
                            this.checkAll = false;
                        }
                    },
                    deep: true
                }
            },
        })
    </script>
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵