Эх сурвалжийг харах

Input: not trigger form validation when input (#12260)

* Input: not trigger validation when input

* InputNumber: update docs
hetech 7 жил өмнө
parent
commit
9e738a85c3

+ 1 - 1
examples/docs/en-US/input-number.md

@@ -121,7 +121,7 @@ Allows you to define incremental steps.
 :::
 
 :::tip
-The value of `precision` must be a positive integer and should not be less than the decimal places of `step`.
+The value of `precision` must be a non negative integer and should not be less than the decimal places of `step`.
 :::
 
 ### Size

+ 1 - 1
examples/docs/es/input-number.md

@@ -121,7 +121,7 @@ Le permite definir el nivel de incremento de los saltos.
 :::
 
 :::tip
-The value of `precision` must be a positive integer and should not be less than the decimal places of `step`.
+The value of `precision` must be a non negative integer and should not be less than the decimal places of `step`.
 :::
 
 ### Tamaño

+ 1 - 1
examples/docs/zh-CN/input-number.md

@@ -120,7 +120,7 @@
 :::
 
 :::tip
-`precision` 的值必须是一个整数,并且不能小于 `step` 的小数位数。
+`precision` 的值必须是一个非负整数,并且不能小于 `step` 的小数位数。
 :::
 
 ### 尺寸

+ 8 - 11
packages/form/src/form-item.vue

@@ -120,19 +120,16 @@
         }
         return parent;
       },
-      fieldValue: {
-        cache: false,
-        get() {
-          const model = this.form.model;
-          if (!model || !this.prop) { return; }
+      fieldValue() {
+        const model = this.form.model;
+        if (!model || !this.prop) { return; }
 
-          let path = this.prop;
-          if (path.indexOf(':') !== -1) {
-            path = path.replace(/:/, '.');
-          }
-
-          return getPropByPath(model, path, true).v;
+        let path = this.prop;
+        if (path.indexOf(':') !== -1) {
+          path = path.replace(/:/, '.');
         }
+
+        return getPropByPath(model, path, true).v;
       },
       isRequired() {
         let rules = this.getRules();

+ 3 - 5
packages/input/src/input.vue

@@ -203,7 +203,7 @@
     },
 
     watch: {
-      'value'(val, oldValue) {
+      value(val, oldValue) {
         this.setCurrentValue(val);
       }
     },
@@ -283,10 +283,8 @@
         if (this.isOnComposition && value === this.valueBeforeComposition) return;
         this.currentValue = value;
         if (this.isOnComposition) return;
-        this.$nextTick(_ => {
-          this.resizeTextarea();
-        });
-        if (this.validateEvent) {
+        this.$nextTick(this.resizeTextarea);
+        if (this.validateEvent && this.currentValue === this.value) {
           this.dispatch('ElFormItem', 'el.form.change', [value]);
         }
       },