From e0967d9d7e71a2dd7be94d61c9d7372b7bd17c98 Mon Sep 17 00:00:00 2001 From: ajuner <106791576@qq.com> Date: Sat, 20 Mar 2021 14:29:23 +0800 Subject: [PATCH] fix: Microsoft input triggers onchange twice (#3825) --- components/vc-input-number/src/index.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/components/vc-input-number/src/index.js b/components/vc-input-number/src/index.js index 79091a240..bbdc4a100 100755 --- a/components/vc-input-number/src/index.js +++ b/components/vc-input-number/src/index.js @@ -264,6 +264,10 @@ export default { this.$emit('keyup', e, ...args); }, + onTrigger(e) { + if (e.target.composing) return false; + this.onChange(e); + }, onChange(e) { if (this.focused) { this.inputting = true; @@ -621,6 +625,13 @@ export default { handleInputClick() { this.$emit('click'); }, + onCompositionstart(e) { + e.target.composing = true; + }, + onCompositionend(e) { + this.onChange(e); + e.target.composing = false; + }, }, render() { const { @@ -775,7 +786,9 @@ export default { name={this.name} title={this.title} id={this.id} - onInput={this.onChange} + onInput={this.onTrigger} + onCompositionstart={this.onCompositionstart} + onCompositionend={this.onCompositionend} ref="inputRef" value={inputDisplayValue} pattern={this.pattern}