Element 表单 resetFields() 验证失效 几种不同的场景(图示)

版权声明:QAQ https://blog.csdn.net/mineblogjw/article/details/84955222

需求:当然是清除表单验证(即下方红色警告)

解决:这4种写法绝对可以解决问题了。

A:_this.$refs['formName'].resetFields();

B:if (_this.$refs['formName'] != undefined){_this.$refs['form1'].resetFields();}

C: _this.$nextTick(() => {_this.$refs['form1'].resetFields()});

D: B+C
   if (_this.$refs['formName'] != undefined){
        _this.$nextTick(() => {_this.$refs['form1'].resetFields()});
    }

出现问题:因为有的业务场景中是多层弹框,或者多复用弹框,所以会出现许多不一样的场景。(方法简解

A:最直接的方式,写在 before-close或者 绑定在‘取消’按钮上之类的常规操作。

B:为了应对不同的复杂逻辑,直接选择将清除验证写在打开弹框的方法上,就不用考虑太多别的逻辑。但是dialog是懒加载,会出现方法undefined报错。那就加上undefined判断。

C:网上百分之90的答案都是这个,强行将方法放到dom出现之后。

D:就是GIF图中所示,BC方法都不运行,清除验证方法也是运行了的,怪到家里去了,会出现全部的表单验证,然后就出现了D方法,解决。

猜你喜欢

转载自blog.csdn.net/mineblogjw/article/details/84955222