From f234b161dff229ca364798901f1b596fdfccccd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=A5=95?= Date: Sat, 10 Mar 2018 20:20:48 +0800 Subject: [PATCH] Select: trigger validation after resetField (#10105) --- packages/form/src/form-item.vue | 7 +++++-- packages/select/src/select.vue | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/form/src/form-item.vue b/packages/form/src/form-item.vue index f155174b3..d73d7f25e 100644 --- a/packages/form/src/form-item.vue +++ b/packages/form/src/form-item.vue @@ -217,13 +217,16 @@ let prop = getPropByPath(model, path, true); + this.validateDisabled = true; if (Array.isArray(value)) { - this.validateDisabled = true; prop.o[prop.k] = [].concat(this.initialValue); } else { - this.validateDisabled = true; prop.o[prop.k] = this.initialValue; } + /* Select 的值被代码改变时不会触发校验, + 这里需要强行触发一次,刷新 validateDisabled 的值, + 确保 Select 下一次值改变时能正确触发校验 */ + this.broadcast('ElSelect', 'fieldReset'); }, getRules() { let formRules = this.form.rules; diff --git a/packages/select/src/select.vue b/packages/select/src/select.vue index 44b3744d4..8f8335c5b 100644 --- a/packages/select/src/select.vue +++ b/packages/select/src/select.vue @@ -789,6 +789,9 @@ this.$on('handleOptionClick', this.handleOptionSelect); this.$on('setSelected', this.setSelected); + this.$on('fieldReset', () => { + this.dispatch('ElFormItem', 'el.form.change'); + }); }, mounted() {