详解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 相关文章推荐
WEB高性能开发之疯狂的HTML压缩
Jun 19 Javascript
jQuery.validate 常用方法及需要注意的问题
Mar 20 Javascript
表单类各种类型(文本框)失去焦点效果jquery代码
Apr 26 Javascript
jquery checkbox实现单选小例
Nov 27 Javascript
jQuery显示和隐藏 常用的状态判断方法
Jan 29 Javascript
js获取url传值的方法
Dec 18 Javascript
three.js实现围绕某物体旋转
Jan 25 Javascript
深入理解javascript的getTime()方法
Feb 16 Javascript
vue实现通讯录功能
Jul 14 Javascript
layui的table中显示图片方法
Aug 17 Javascript
LayUi数据表格自定义赋值方式
Oct 26 Javascript
Vuex实现购物车小功能
Aug 17 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添加文章时生成静态HTML文章的实现代码
2013/02/17 PHP
通过PHP current函数获取未知字符键名数组第一个元素的值
2013/06/24 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
PHP微信开发用Cache 解决数据缓存
2016/07/11 PHP
PHP静态成员变量和非静态成员变量详解
2017/02/14 PHP
PHP实现链式操作的三种方法详解
2017/11/16 PHP
dojo 之基础篇
2007/03/24 Javascript
JavaScript极简入门教程(二):对象和函数
2014/10/25 Javascript
基于jquery编写的放大镜插件
2016/03/23 Javascript
第十篇BootStrap轮播插件使用详解
2016/06/21 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
原生JS实现轮播效果+学前端的感受(防止走火入魔)
2016/08/21 Javascript
基于JavaScript实现点击页面任何位置返回
2016/08/31 Javascript
移动端使用localStorage缓存Js和css文的方法(web开发)
2016/09/20 Javascript
jQuery实现给input绑定回车事件的方法
2017/02/09 Javascript
Vuejs入门教程之Vue生命周期,数据,手动挂载,指令,过滤器
2017/04/19 Javascript
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
2017/12/06 Javascript
Express下采用bcryptjs进行密码加密的方法
2018/02/07 Javascript
React中嵌套组件与被嵌套组件的通信过程
2018/07/11 Javascript
Vue项目移动端滚动穿透问题的实现
2020/05/19 Javascript
three.js 实现露珠滴落动画效果的示例代码
2021/03/01 Javascript
Python实现针对给定字符串寻找最长非重复子串的方法
2018/04/21 Python
numpy.linspace 生成等差数组的方法
2018/07/02 Python
python编写简易聊天室实现局域网内聊天功能
2018/07/28 Python
python 把列表转化为字符串的方法
2018/10/23 Python
浅谈Python的方法解析顺序(MRO)
2020/03/05 Python
python利用xpath爬取网上数据并存储到django模型中
2021/02/26 Python
大学生军训广播稿
2014/01/24 职场文书
什么样的创业计划书可行性高?
2014/02/01 职场文书
房产继承公证书
2014/04/09 职场文书
赔偿协议书范本
2014/04/15 职场文书
三月学雷锋月活动总结
2014/04/28 职场文书
2014保险公司个人工作总结
2014/12/09 职场文书
企业2014年度工作总结
2014/12/10 职场文书
JS实现数组去重的11种方法总结
2022/04/04 Javascript
Elasticsearch 批量操作
2022/04/19 Python