diff --git a/packages/runtime-dom/src/directives/vModel.ts b/packages/runtime-dom/src/directives/vModel.ts index 9e94810d8cd..9f9744c1770 100644 --- a/packages/runtime-dom/src/directives/vModel.ts +++ b/packages/runtime-dom/src/directives/vModel.ts @@ -86,9 +86,10 @@ export const vModelText: ModelDirective< el[assignKey] = getModelAssigner(vnode) // avoid clearing unresolved text. #2302 if ((el as any).composing) return - const elValue = - number || el.type === 'number' ? looseToNumber(el.value) : el.value + number || (el.type === 'number' && el.value[0] !== '0') + ? looseToNumber(el.value) + : el.value const newValue = value == null ? '' : value if (elValue === newValue) {