vue.js简单实现checkbox全选,反选,多选

54 篇文章 0 订阅

1.html

<table>
  <tr>
    <th class=""> 
      <div class=""> 
        <input type="checkbox" id="checkAll" @click="clickCheckAll()" v-model="checkAll"> 全选 
      </div> 
    </th>
  </tr>
  <tr v-for="(item,index) in tableList">
   <td>
      <input type="checkbox" name="checkBoxs" v-model="item.isChecked"
        @click="clickCheckbox(item,item.id)">
   </td>
</tr>
</table>

2.js

var app= new Vue({
    el: "#iframeRegCheck",
    data: {     
        tableList:[], //表格数组
        isChecklist:[], //被选中的
        checkAll:false  //全选的v-model值
    },
    mounted:function (){
        this.initTable();
    },
    methods: {
        initTable:function () {
            var that = this;
            $.ajax({
                type: 'post',
                url: "yxChecklistController.do?getDateRectification",
                dataType: 'json',
                data: {
                    "id":'${id}',
                    "tag":that.tag
                },
                success: function (data) {              
                    for (var i = 0; i < data.length; i++) { 
                       var objData= data[i]; 
                       objData.isChecked = false; //添加是否选中字段,用来控制选择情况 
                       that.tableList.push(objSta) 
                  }                 
                },
                error:function (e) {
                    alert('获取内容失败,请检查网络情况')
                }
            });
        },
        //全选 反选
        clickCheckAll:function () {
            var _this = this;
            _this.checkAll = !_this.checkAll;   //取反
            for (var i=0;i<_this.tableList.length;i++){  //循环所有checkbox,添加选中状态
                var checkedData = _this.tableList[i];
                checkedData.isChecked = _this.checkAll;               
            }
        },
        //点击单个复选框
        clickCheckbox:function (item,id) {
            var _this = this;
            item.isChecked = !item.isChecked;
            if(item.isChecked){
                _this.isChecklist.push(id)   //随便放个参数到数组记录选中数量
            }else {
                var last =  _this.isChecklist.length-1;
                _this.isChecklist.splice(last,1);    //取消选中时删掉数组最后一个
            }
            if( _this.isChecklist.length == _this.tableList.length){  //比较选中的数组数量和总数据的数量来决定全选是否选中
                _this.checkAll = true;
            }else {
                _this.checkAll = false;
            }
        },
})

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值