用的是Element-UI
需求是当时需要自己写个树形下拉框的组件,但是刚好用于form表单提交的,然后发现这个自己写的组件,触发验证会有一些问题,明明填写了值,但是验证提示没有填写值,但是也不影响提交,强迫症啊,需要解决,所以百度了一下,然后大致总结了一下,就是自定义组件在失去焦点的时候自己要调用一下form的validate,代码:
validate() {
const formItem = findComponentUpward(this, "ElFormItem");
if (formItem) {
const prop = formItem.prop;
const form = formItem.form;
if (prop && form) {
form.validateField(prop);
}
}
},
这个代码我是在自定义组件的,下拉面板关闭以后调用了一下,至于时机根据个人情况,findComponentUpward
查找上级组件,参考【我的Vue 组件查找】笔记,其实也可以用事件分发的,但是当时试了,好像并没有效果,理论上是可行的,但是没成功,有时间的朋友可以试试。