elementui的el-cascader组件js方式设置值后rules校验不通过?

正常的选择后校验没有问题。
现在是我先点击"提交按钮",先让他校验报错,然后通过js方式赋值,
值改变后校验信息还在是什么原因?
为什么js的方式不会触发标签本身@change
image.png
js修改
image.png
验证信息
image.png
标签
image.png

阅读 3.6k
1 个回答

当数据动态修改后,再次调用规则验证功能即可解决。
可参考以下代码

<el-form ref="basicForm" :model="basicForm" >略 
<el-cascader
            v-model="basicForm.eventTypeValue"
            :options="eventTypeList"
            :props="{ expandTrigger: 'hover' }"
            placeholder="请选择事件指标"
            :disabled="isEdit"
            @change="handleChange" style="width:100%;"></el-cascader>

1、自定义验证规则,放入data中

    const validateOrg = (rule, value, callback) => {
      console.log("validateOrg=", value);
      if (this.basicForm.eventTypeValue.length === 0) {
        console.log("1111");
        callback(new Error("请选择事件指标"));
      } else {
        console.log("2222");
        callback();
      }
    };

2、修改规则部分

eventTypeValue: [{ type: "array", validator: validateOrg, required: true, trigger: "change" }],

3、动态修改数据的时候,再次调用规则验证

this.$refs.basicForm.validate(() => {});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题