diff --git a/packages/runtime-dom/src/directives/vModel.ts b/packages/runtime-dom/src/directives/vModel.ts index 1bc4e76dfbc..fdc173143a6 100644 --- a/packages/runtime-dom/src/directives/vModel.ts +++ b/packages/runtime-dom/src/directives/vModel.ts @@ -79,7 +79,11 @@ export const vModelText: ModelDirective< mounted(el, { value }) { el.value = value == null ? '' : value }, - beforeUpdate(el, { value, modifiers: { lazy, trim, number } }, vnode) { + beforeUpdate( + el, + { value, oldValue, modifiers: { lazy, trim, number } }, + vnode + ) { el[assignKey] = getModelAssigner(vnode) // avoid clearing unresolved text. #2302 if ((el as any).composing) return @@ -93,7 +97,8 @@ export const vModelText: ModelDirective< } if (document.activeElement === el && el.type !== 'range') { - if (lazy) { + // #8546 + if (lazy && value === oldValue) { return } if (trim && el.value.trim() === newValue) {