项目使用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);
});
标签:el,form,parent,componentName,校验,dispatch,自定义
From: https://www.cnblogs.com/7c89/p/17477421.html