From 90eb1e1927033458de7ae27bbcb54f2f6effa9fd Mon Sep 17 00:00:00 2001 From: Boik Date: Thu, 27 Apr 2017 00:25:18 +0800 Subject: [PATCH] Autocomplete: fix problem when input with Chinese input method (#4393) --- packages/autocomplete/src/autocomplete.vue | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/autocomplete/src/autocomplete.vue b/packages/autocomplete/src/autocomplete.vue index f92f63b91..4c6be587e 100644 --- a/packages/autocomplete/src/autocomplete.vue +++ b/packages/autocomplete/src/autocomplete.vue @@ -9,6 +9,9 @@ :size="size" :icon="icon" :on-icon-click="onIconClick" + @compositionstart.native="handleComposition" + @compositionupdate.native="handleComposition" + @compositionend.native="handleComposition" @change="handleChange" @focus="handleFocus" @blur="handleBlur" @@ -71,6 +74,7 @@ data() { return { isFocus: false, + isOnComposition: false, suggestions: [], loading: false, highlightedIndex: -1 @@ -100,9 +104,17 @@ } }); }, + handleComposition(event) { + if (event.type === 'compositionend') { + this.isOnComposition = false; + this.handleChange(event.data); + } else { + this.isOnComposition = true; + } + }, handleChange(value) { this.$emit('input', value); - if (!this.triggerOnFocus && !value) { + if (this.isOnComposition || (!this.triggerOnFocus && !value)) { this.suggestions = []; return; }