[Bug Report]Form表单resetFields触发时如果input对应值为空字符串,且rule的trigger为change,则再次输入时首字符不会触发校验
qwer02224 opened this issue · comments
qwer02224 commented
Environment
Win10/Chrome 111.0.5563.64/vue 2.6.14
Reproduction link
http://v4.iviewui.com/components/form
Steps to reproduce
表单中Input绑定规则 {pattern: /^[A-Za-z0-9_-]*$/, message: '只支持数字、字母、中划线和下划线', trigger: 'change'}
在Input为空时点击重置,触发resetFields方法
然后再Input中进行输入,输入单个字符 !
What is expected?
表单校验失败,给出 【只支持数字、字母、中划线和下划线】的错误提示
What is actually happening?
表单未触发校验,再次输入一个字符才会触发,例如输入正常字符 1
liujiekun commented
我今天也遇到这个问题了,首次输入change并未触发,非要等到输入第二个字符才会触发
liujiekun commented
不过有可以替换的方案,比如监听input的input事件,然后在监听事件中,去调用form的validateField方法,去手动校验
solfKwolf commented
form-item组件在调用resetField()之后没有重新将validateDisabled改为false;所以导致这个缺陷
onFieldChange() {
if (this.validateDisabled) {
this.validateDisabled = false;
return;
}
this.validate('change');
}