利用Vue.js实现checkbox的全选反选效果


Posted in Javascript onJanuary 18, 2017

前言

这篇文章主要是跟大家分享了利用Vue.js实现checkbox的全选反选效果,之前写的代码存在一个bug,就是当你选择全选的时候去掉后面的一个选项,再点全选结果就是反的了。后来很感谢朋友留言帮我改了这个问题嘻嘻,下面一起来看看具体是怎么实现的吧.

html示例代码

<template>
 <div>
 <input type='checkbox' class='input-checkbox' v-model='checked' v-on:click='checkedAll'>全选
 <template v-for='checkb in checkboxData'>
 <input type='checkbox' name='checkboxinput' class='input-checkbox' v-model='checkboxModel' value='{{checkb.id}}'>{{checkb.value}}
 </template>
 </div>
</template>

js示例代码

<script>
export default {
methods:{
 checkedAll: function() {
 var _this = this;
 console.log(_this.checkboxModel);
 if (this.checked) {//实现反选
 _this.checkboxModel = [];
 }else{//实现全选
 _this.checkboxModel = [];
 _this.checkboxData.forEach(function(item) {
 _this.checkboxModel.push(item.id);
 });
 }
 }
},
watch: {//深度 watcher
 'checkboxModel': {
 handler: function (val, oldVal) { 
 if (this.checkboxModel.length === this.checkboxData.length) {
 this.checked=true;
 }else{
 this.checked=false;
 }
 },
 deep: true
 }
},
data () {
 return {
 checkboxData:[{
 id:'1',
 value:'苹果'
 },{
 id:'2',
 value:'荔枝'
 },{
 id:'3',
 value:'香蕉'
 },{
 id:'4',
 value:'火龙果'
 }],
 checkboxModel:['1','3','4'],
 checked:""
 }
}
}
</script>

watch

类型: Object

详细:

一个对象,键是观察表达式,值是对应回调。值也可以是方法名,或者是对象,包含选项。在实例化时为每个键调用 $watch()

示例:

var vm = new Vue({
 data: {
 a: 1
 },
 watch: {
 'a': function (val, oldVal) {
 console.log('new: %s, old: %s', val, oldVal)
 },
 // 方法名
 'b': 'someMethod',
 // 深度 watcher
 'c': {
 handler: function (val, oldVal) { /* ... */ },
 deep: true
 }
 }
})
vm.a = 2 // -> new: 2, old: 1

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
基于Jquery的将DropDownlist的选中值赋给label的实现代码
May 06 Javascript
jQueryUI写一个调整分类的拖放效果实现代码
May 10 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
Apr 16 Javascript
jquery转盘抽奖功能实现
Nov 13 Javascript
基于jQuery实现返回顶部实例代码
Jan 01 Javascript
javascript实现可键盘控制的抽奖系统
Mar 10 Javascript
一个字符串中出现次数最多的字符 统计这个次数【实现代码】
Apr 29 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
Jun 27 Javascript
JavaScript实现倒计时跳转页面功能【实用】
Dec 13 Javascript
JavaScript全屏和退出全屏事件总结(附代码)
Aug 17 Javascript
使用Vue制作图片轮播组件思路详解
Mar 21 Javascript
详解小程序循环require之坑
Mar 08 Javascript
微信小程序的动画效果详解
Jan 18 #Javascript
详解微信小程序开发之——wx.showToast(OBJECT)的使用
Jan 18 #Javascript
bootstrap配合Masonry插件实现瀑布式布局
Jan 18 #Javascript
JavaScript字符串对象(string)基本用法示例
Jan 18 #Javascript
Vue.js自定义指令的用法与实例解析
Jan 18 #Javascript
vue.js+Element实现表格里的增删改查
Jan 18 #Javascript
JS中Array数组学习总结
Jan 18 #Javascript
You might like
PHP实现定时生成HTML网站首页实例代码
2008/11/20 PHP
PHP判断变量是否为0的方法
2014/02/08 PHP
PHP中SSO Cookie登录分析和实现
2015/11/06 PHP
PHP 多任务秒级定时器的实现方法
2018/05/13 PHP
event.keyCode键码值表 附只能输入特定的字符串代码
2009/05/15 Javascript
javascript定时保存表单数据的代码
2011/03/17 Javascript
js函数的延迟加载实现代码
2012/10/11 Javascript
基于javascript 闭包基础分享
2013/07/10 Javascript
JavaScript生成福利彩票双色球号码
2015/05/15 Javascript
js实现跨域的几种方法汇总(图片ping、JSONP和CORS)
2015/10/25 Javascript
jQuery插件Validate实现自定义校验结果样式
2016/01/18 Javascript
JS实现的打字机效果完整实例
2016/06/20 Javascript
使用jquery如何获取时间
2016/10/13 Javascript
多种方式实现js图片预览
2016/12/12 Javascript
JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例
2018/02/08 Javascript
vue-cli 如何打包上线的方法示例
2018/05/08 Javascript
JavaScript深拷贝和浅拷贝概念与用法实例分析
2018/06/07 Javascript
Element InputNumber计数器的使用方法
2020/07/27 Javascript
vue中后端做Excel导出功能返回数据流前端的处理操作
2020/09/08 Javascript
[08:42]DOTA2每周TOP10 精彩击杀集锦vol.2
2014/06/25 DOTA
python logging类库使用例子
2014/11/22 Python
浅谈Python中数据解析
2015/05/05 Python
Python实现PyPDF2处理PDF文件的方法示例
2019/09/25 Python
Python列表list常用内建函数实例小结
2019/10/22 Python
世界上最大的在线旅行社新加坡网站:Expedia新加坡
2016/08/25 全球购物
Gap加拿大官网:Gap Canada
2017/08/24 全球购物
波兰运动鞋网上商店:e-Sporting
2018/02/16 全球购物
CSS代码检查工具stylelint的使用方法详解
2021/03/27 HTML / CSS
临床医学应届生求职信
2013/11/06 职场文书
环境工程专业毕业生求职信
2014/09/30 职场文书
学校师德师风整改方案
2014/10/28 职场文书
2015年试用期工作总结
2014/12/12 职场文书
python实现批量移动文件
2021/04/05 Python
给numpy.array增加维度的超简单方法
2021/06/02 Python
如何将JavaScript将数组转为树形结构
2021/06/02 Javascript
利用Python读取微信朋友圈的多种方法总结
2021/08/23 Python