From 8912639b17a4ed494d6c77afaa47eefad5bf9af7 Mon Sep 17 00:00:00 2001 From: DCloud_LXH <283700113@qq.com> Date: Mon, 17 Jan 2022 16:11:27 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20input=20=E4=B8=BA=20number=20=E6=97=B6?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=20selectionEnd=20=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../uni-components/src/helpers/useField.ts | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/packages/uni-components/src/helpers/useField.ts b/packages/uni-components/src/helpers/useField.ts index 2520ff0ea..47f2fe923 100644 --- a/packages/uni-components/src/helpers/useField.ts +++ b/packages/uni-components/src/helpers/useField.ts @@ -334,6 +334,13 @@ function useEvent( field.selectionEnd = field.selectionStart = state.cursor } } + function getFieldSelectionEnd(field: HTMLInputElement) { + if (field.type === 'number') { + return null + } else { + return field.selectionEnd + } + } function initField() { const field = fieldRef.value as HTMLFieldElement const onFocus = function (event: Event) { @@ -359,7 +366,7 @@ function useEvent( event, { value: field.value, - cursor: field.selectionEnd, + cursor: getFieldSelectionEnd(field as HTMLInputElement), }, force ) @@ -372,18 +379,9 @@ function useEvent( onInput(event, true) } state.focus = false - const field = event.target! as HTMLInputElement - let cursor - if (field.type === 'number') { - field.type = 'text' - cursor = field.selectionEnd - field.type = 'number' - } else { - cursor = field.selectionEnd - } trigger('blur', event, { value: state.value, - cursor, + cursor: getFieldSelectionEnd(event.target as HTMLInputElement), }) } // 避免触发父组件 change 事件 -- GitLab