利用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 相关文章推荐
地址栏上的一段语句,改变页面的风格。(教程)
Apr 02 Javascript
jQuery 源码分析笔记(6) jQuery.data
Jun 08 Javascript
JavaScript高级程序设计 事件学习笔记
Sep 10 Javascript
javascript的字符串按引用复制和传递,按值来比较介绍与应用
Dec 28 Javascript
raphael.js绘制中国地图 地图绘制方法
Feb 12 Javascript
JavaScript将Web页面内容导出到Word及Excel的方法
Feb 13 Javascript
js漂浮广告实现代码
Aug 15 Javascript
基于JavaScript实现根据手机定位获取当前具体位置(X省X市X县X街道X号)
Dec 29 Javascript
JS获取CSS样式(style/getComputedStyle/currentStyle)
Jan 19 Javascript
jQuery文字横向滚动效果的实现代码
May 31 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
Apr 21 jQuery
说说如何利用 Node.js 代理解决跨域问题
Apr 22 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 删除记录同时删除图片文件的实现代码
2010/05/12 PHP
php number_format() 函数通过千位分组来格式化数字的实现代码
2013/08/06 PHP
PHP四大安全策略
2014/03/12 PHP
ThinkPHP3.1新特性之内容解析输出详解
2014/06/19 PHP
php防止伪造的数据从URL提交方法
2014/06/27 PHP
php中Ctype函数用法详解
2014/12/09 PHP
PHP使用array_fill定义多维数组的方法
2015/03/18 PHP
PHP连接Nginx服务器并解析Nginx日志的方法
2015/08/16 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
2017/04/10 PHP
tp5框架使用composer实现日志记录功能示例
2019/01/10 PHP
extjs 学习笔记(二) Ext.Element类
2009/10/13 Javascript
js 利用className得到对象的实现代码
2011/11/15 Javascript
浅谈js中的in-for循环
2016/06/28 Javascript
浅谈js的url解析函数封装
2016/06/28 Javascript
Angular.JS判断复选框checkbox是否选中并实时显示
2016/11/30 Javascript
jQuery实现百度登录框的动态切换效果
2017/04/21 jQuery
基于Vue实例生命周期(全面解析)
2017/08/16 Javascript
基于js 本地存储(详解)
2017/08/16 Javascript
脚手架vue-cli工程webpack的基本用法详解
2018/09/29 Javascript
深入学习Vue nextTick的用法及原理
2019/10/08 Javascript
Node.js API详解之 util模块用法实例分析
2020/05/09 Javascript
[05:28]刀塔密之一:团结则存
2014/07/03 DOTA
浅谈Python类的__getitem__和__setitem__特殊方法
2016/12/25 Python
python用Pygal如何生成漂亮的SVG图像详解
2017/02/10 Python
Python-Tkinter Text输入内容在界面显示的实例
2019/07/12 Python
全面介绍python中很常用的单元测试框架unitest
2020/12/14 Python
PyQt5通过信号实现MVC的示例
2021/02/06 Python
Nike挪威官网:Nike.com (NO)
2018/11/26 全球购物
大学生实习自我鉴定
2013/12/11 职场文书
商场总经理岗位职责
2014/02/03 职场文书
学习普通话的体会
2014/11/07 职场文书
世界文化遗产导游词
2015/02/13 职场文书
入党转正介绍人意见
2015/06/03 职场文书
2015年教师节新闻稿
2015/07/17 职场文书
学术会议开幕词
2016/03/03 职场文书
创业计划书之面包店
2019/09/12 职场文书