From: 远方os Date: Fri, 31 May 2024 13:05:41 +0000 (+0800) Subject: fix(v-model): fix the lazy modifier is not reset by other modifications (#8547) X-Git-Tag: v3.4.28~52 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a52a02f43fdf73d8aaad99c9cafed07f12ee422a;p=thirdparty%2Fvuejs%2Fcore.git fix(v-model): fix the lazy modifier is not reset by other modifications (#8547) close #8546 close #6564 close #6773 --- diff --git a/packages/runtime-dom/src/directives/vModel.ts b/packages/runtime-dom/src/directives/vModel.ts index b0ea41728b..95685540a9 100644 --- a/packages/runtime-dom/src/directives/vModel.ts +++ b/packages/runtime-dom/src/directives/vModel.ts @@ -82,7 +82,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 @@ -97,7 +101,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) {