diff --git a/packages/runtime-dom/src/directives/vModel.ts b/packages/runtime-dom/src/directives/vModel.ts index b3e10a2a1c2..3d05e9fa47f 100644 --- a/packages/runtime-dom/src/directives/vModel.ts +++ b/packages/runtime-dom/src/directives/vModel.ts @@ -18,7 +18,9 @@ import { type AssignerFn = (value: any) => void const getModelAssigner = (vnode: VNode): AssignerFn => { - const fn = vnode.props!['onUpdate:modelValue'] || (__COMPAT__ && vnode.props!['onModelCompat:input']) + const fn = + vnode.props!['onUpdate:modelValue'] || + (__COMPAT__ && vnode.props!['onModelCompat:input']) return isArray(fn) ? value => invokeArrayFns(fn, value) : fn } @@ -78,7 +80,7 @@ export const vModelText: ModelDirective< el._assign = getModelAssigner(vnode) // avoid clearing unresolved text. #2302 if ((el as any).composing) return - if (document.activeElement === el) { + if (document.activeElement === el && el.type !== 'range') { if (lazy) { return }