据我所知,event.preventDefault不适用于安卓系统。那么,在点击事件中,防止用户在android中输入特殊字符的最佳替代方法是什么?注意:当输入事件触发时,替换值解决方案是好的,但在我的情况下并不能解决问题。
发布于 2022-02-16 16:02:15
在我的例子中,在Android上替换input
事件的值的问题是使用插入符号,在输入时跳到错误的位置。
我就这样解决了:
let input = document.getElementById("input")
function withoutForbiddenChars(str) {
// change to your set of chars
return str.replace(/[^\d]+/g, '')
}
function handleInput(event) {
let charsBeforeCaret = input.value.slice(0, input.selectionStart)
let charsAfterCaret = input.value.slice(input.selectionStart)
charsBeforeCaret = withoutForbiddenChars(charsBeforeCaret)
charsAfterCaret = withoutForbiddenChars(charsAfterCaret)
input.value = charsBeforeCaret + charsAfterCaret
let newCaretPos = charsBeforeCaret.length
input.selectionStart = newCaretPos
input.selectionEnd = newCaretPos
}
input.addEventListener('input', handleInput, false)
https://stackoverflow.com/questions/63534969
复制相似问题