自定义组件触发element-ui el-form 校验

发布时间 2023-06-13 14:29:43作者: 7c89

项目使用element-ui 中的 el-form 进行表单校验,表单中含有上传组件,当校验时机设置change时,实际值已经改变,但没有触发校验。
看一下el-select的源码是怎么写的,在watch 监听里当value 改变时,有这么一段代码
this.dispatch('ElFormItem', 'el.form.change', val);

可以引入dispatch函数
dispatch(componentName, eventName, params) {
  var parent = this.$parent || this.$root;
  var name = parent.$options.componentName;

  while (parent && (!name || name !== componentName)) {
    parent = parent.$parent;

    if (parent) {
      name = parent.$options.componentName;
    }
  }
  if (parent) {
    parent.$emit.apply(parent, [eventName].concat(params));
  }
},
也可以
import emitter from 'element-ui/src/mixins/emitter';
  mixins: [emitter],

 this.$emit('input', this.fileId);
      setTimeout(() => {
        this.dispatch('ElFormItem', 'el.form.change', this.fileId);
      });