最近深陷element表单验证的坑,被一个问题困扰了好几天:页面一打开什么都没做表单就自动验证。
网上搜了一圈解决方案,只有这位仁兄的方法给了点启示:
https://www.jianshu.com/p/d2c900f7b730
但是我把trigger:change改成trigger:blur依然无效。顺着调用栈找了几遍:
好像这个rules有点名堂。。。点进去瞅瞅。。
可以看出来,rules发生变化被监听到了,然后触发了验证。但是我啥也没做为什么rules会发生变化???没搞懂,不过没关系。。。那rules改变我不让它触发验证不就好了。我在官方文档找了一圈:
在el-form中把这个属性设为false就ok
以为这样就大功告成?
接着发现,输入框输入了文字,校验提示并没有消失
其实输入框发生变化的时候rules都会被触发,所以trigger还是把change加上吧:
trigger:['blur','change']
这样就完美解决啦