ViewUI icon indicating copy to clipboard operation
ViewUI copied to clipboard

[Bug Report]Form表单resetFields触发时如果input对应值为空字符串,且rule的trigger为change,则再次输入时首字符不会触发校验

Open qwer02224 opened this issue 2 years ago • 3 comments

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

qwer02224 avatar Mar 16 '23 07:03 qwer02224

我今天也遇到这个问题了,首次输入change并未触发,非要等到输入第二个字符才会触发

liujiekun avatar Apr 12 '23 02:04 liujiekun

不过有可以替换的方案,比如监听input的input事件,然后在监听事件中,去调用form的validateField方法,去手动校验

liujiekun avatar Apr 12 '23 03:04 liujiekun

form-item组件在调用resetField()之后没有重新将validateDisabled改为false;所以导致这个缺陷

onFieldChange() {
      if (this.validateDisabled) {
          this.validateDisabled = false;
          return;
      }

      this.validate('change');
  }

solfKwolf avatar May 19 '23 01:05 solfKwolf