详解iview的checkbox多选框全选时校验问题


Posted in Javascript onJune 10, 2019

在用iview框架的 checkbox 多选框时 遇到了一个校验问题

在iview给的例子中 代码如下 https://www.iviewui.com/components/checkbox

<template>
  <div style="border-bottom: 1px solid #e9e9e9;padding-bottom:6px;margin-bottom:6px;">
    <Checkbox
      :indeterminate="indeterminate"
      :value="checkAll"
      **@click.prevent.native="handleCheckAll"**>全选</Checkbox>
  </div>
  <CheckboxGroup v-model="checkAllGroup" @on-change="checkAllGroupChange">
    <Checkbox label="香蕉"></Checkbox>
    <Checkbox label="苹果"></Checkbox>
    <Checkbox label="西瓜"></Checkbox>
  </CheckboxGroup>
</template>
<script>
  export default {
    data () {
      return {
        indeterminate: true,
        checkAll: false,
        checkAllGroup: ['香蕉', '西瓜']
      }
    },
    methods: {
      handleCheckAll () {
        if (this.indeterminate) {
          this.checkAll = false;
        } else {
          this.checkAll = !this.checkAll;
        }
        this.indeterminate = false;

        if (this.checkAll) {
          this.checkAllGroup = ['香蕉', '苹果', '西瓜'];
        } else {
          this.checkAllGroup = [];
        }
      },
      checkAllGroupChange (data) {
        if (data.length === 3) {
          this.indeterminate = false;
          this.checkAll = true;
        } else if (data.length > 0) {
          this.indeterminate = true;
          this.checkAll = false;
        } else {
          this.indeterminate = false;
          this.checkAll = false;
        }
      }
    }
  }
</script>

上述代码标粗部分所用到的是click方法

但是在做表单校验的时候会出现一个问题,就是当你选择香蕉,苹果,西瓜时会触发v-model = 'checkAllGroup' 绑定的校验方法,但是全选/不全选的时候,这个校验不会触发。

解决方法 : 把全选的 @click.prevent.native="handleCheckAll" 方法 改成 @on-change="handleCheckAll"

这个问题就会得到解决。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
你可能不再需要JQUERY
Mar 09 Javascript
javascript之水平横向滚动歌词同步的应用
May 07 Javascript
Flexigrid在IE下不显示数据的处理的解决方法
Oct 24 Javascript
屏蔽script注入小例子
Nov 12 Javascript
jQuery判断checkbox(复选框)是否被选中以及全选、反选实现代码
Feb 21 Javascript
AngularJS语法详解
Jan 23 Javascript
DOM 高级编程
May 06 Javascript
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
Dec 03 Javascript
jquery之别踩白块游戏的简单实现
Jul 25 Javascript
Angularjs 实现一个幻灯片示例代码
Sep 08 Javascript
bootstrap模态框远程示例代码分享
May 22 Javascript
Angularjs使用过滤器完成排序功能
Sep 20 Javascript
前端路由&amp;webpack基础配置详解
Jun 10 #Javascript
在Vue中用canvas实现二维码和图片合成海报的方法
Jun 10 #Javascript
vue中使用 pako.js 解密 gzip加密字符串的方法
Jun 10 #Javascript
移动端 Vue+Vant 的Uploader 实现上传、压缩、旋转图片功能
Jun 10 #Javascript
利用百度echarts实现图表功能简单入门示例【附源码下载】
Jun 10 #Javascript
jquery操作checkbox的常用方法总结【附测试源码下载】
Jun 10 #jQuery
利用Electron简单撸一个Markdown编辑器的方法
Jun 10 #Javascript
You might like
PHP直接修改表内容DataGrid功能实现代码
2015/09/24 PHP
PHP 微信扫码支付源代码(推荐)
2016/11/03 PHP
Javascript实例教程(19) 使用HoTMetal(2)
2006/12/23 Javascript
JavaScript Archive Network 集合
2007/05/12 Javascript
jQuery之日期选择器的深入解析
2013/06/19 Javascript
javascript实现des解密加密全过程
2014/04/03 Javascript
浅谈nodeName,nodeValue,nodeType,typeof 的区别
2015/01/13 Javascript
Javascript调用函数方法的几种方式介绍
2015/03/20 Javascript
javascript封装 Cookie 应用接口
2015/08/07 Javascript
jquery实现表单验证简单实例演示
2015/11/23 Javascript
分享12个实用的jQuery代码片段
2016/03/09 Javascript
jQuery图片渐变特效的简单实现
2016/06/25 Javascript
构建大型 Vue.js 项目的10条建议(小结)
2019/11/14 Javascript
在微信小程序中使用mqtt服务的方法
2019/12/13 Javascript
如何实现vue的tree组件
2020/12/03 Vue.js
python 判断一个进程是否存在
2009/04/09 Python
寻找网站后台地址的python脚本
2014/09/01 Python
编写Python脚本抓取网络小说来制作自己的阅读器
2015/08/20 Python
带你了解python装饰器
2017/06/15 Python
Python+OpenCV感兴趣区域ROI提取方法
2019/01/10 Python
python 正则表达式参数替换实例详解
2020/01/17 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
2020/02/20 Python
Python爬取YY评级分数并保存数据实现过程解析
2020/06/01 Python
详解HTML5新增标签
2017/11/27 HTML / CSS
JSP&Servlet技术面试题
2015/05/21 面试题
党支部活动策划方案
2014/08/18 职场文书
查摆问题自我剖析材料
2014/08/18 职场文书
教师批评与自我批评心得体会
2014/10/16 职场文书
2015毕业生实习期工作总结
2015/04/09 职场文书
公司市场部岗位职责
2015/04/15 职场文书
2015年预算员工作总结
2015/05/14 职场文书
小学六年级毕业感言
2015/07/30 职场文书
《青山不老》教学反思
2016/02/22 职场文书
详解Python生成器和基于生成器的协程
2021/06/03 Python
Windows中Redis安装配置流程并实现远程访问功能
2021/06/07 Redis
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang