From 649fa88f65831cbac559cb6d3adf81bba6e22787 Mon Sep 17 00:00:00 2001 From: eiinu Date: Thu, 16 May 2024 16:11:26 +0800 Subject: [PATCH] =?UTF-8?q?fix(input):=20=E7=A7=BB=E9=99=A4=E9=9D=9E?= =?UTF-8?q?=E5=BF=85=E8=A6=81=E7=9A=84=20modelValue=20=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/packages/__VUE/input/input.taro.vue | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/src/packages/__VUE/input/input.taro.vue b/src/packages/__VUE/input/input.taro.vue index 9dde73e88a..a7e224ffa9 100644 --- a/src/packages/__VUE/input/input.taro.vue +++ b/src/packages/__VUE/input/input.taro.vue @@ -180,8 +180,6 @@ const _onInput = (event: Event) => { } const updateValue = (value: string, trigger: InputFormatTrigger = 'onChange') => { - // #2178 & Taro #2642 - emit('update:modelValue', value) if (props.maxLength && value.length > Number(props.maxLength)) { value = value.slice(0, Number(props.maxLength)) } @@ -191,11 +189,15 @@ const updateValue = (value: string, trigger: InputFormatTrigger = 'onChange') => value = formatNumber(value, isDigit, isDigit) } if (props.formatter && trigger === props.formatTrigger) { - value = props.formatter(value) + const tempValue = props.formatter(value) + if (tempValue !== value) { + // #2178 & Taro #2642 + emit('update:modelValue', value) + } + value = tempValue } if (value !== props.modelValue) { emit('update:modelValue', value) - // emit('change', value); } } @@ -205,7 +207,6 @@ const onFocus = (event: Event) => { } active.value = true emit('focus', event) - // emit('update:modelValue', value); } const onBlur = (event: Event) => { @@ -215,22 +216,14 @@ const onBlur = (event: Event) => { setTimeout(() => { active.value = false }, 200) - - const input = event.target as HTMLInputElement - let value = input.value - if (props.maxLength && value.length > Number(props.maxLength)) { - value = value.slice(0, Number(props.maxLength)) - } updateValue(getModelValue(), 'onBlur') emit('blur', event) - // emit('update:modelValue', value); } const clear = (event: Event) => { event.stopPropagation() if (disabled.value) return emit('update:modelValue', '', event) - // emit('change', '', event); emit('clear', '', event) }