当前位置: 移动技术网 > IT编程>脚本编程>vue.js > 详解iview的checkbox多选框全选时校验问题

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

2019年07月18日  | 移动技术网IT编程  | 我要评论

太平阳汽车网,德干旺姆,部队招聘

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

在iview给的例子中 代码如下

<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"

这个问题就会得到解决。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网