提交 8912639b 编写于 作者: D DCloud_LXH

fix: input 为 number 时获取 selectionEnd 报错

上级 aa2c563b
......@@ -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 事件
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册