sin*_*ina 5 html javascript android-chrome
据我所知,event.preventDefault 在 android 中不起作用。那么阻止用户在 android 中 keydown 事件中输入特殊字符的最佳替代方法是什么?注意:输入事件触发时的替换值解决方案很好,但在我的情况下并不能解决问题。
小智 0
就我而言,在 Android 上替换事件值的问题input在于插入符号,它在打字时跳到了错误的位置。
我\xe2\x80\x99已经这样解决了:
\nlet input = document.getElementById("input")\n\nfunction withoutForbiddenChars(str) {\n // change to your set of chars\n return str.replace(/[^\\d]+/g, \'\')\n}\n\nfunction handleInput(event) {\n let charsBeforeCaret = input.value.slice(0, input.selectionStart)\n let charsAfterCaret = input.value.slice(input.selectionStart)\n \n charsBeforeCaret = withoutForbiddenChars(charsBeforeCaret)\n charsAfterCaret = withoutForbiddenChars(charsAfterCaret)\n \n input.value = charsBeforeCaret + charsAfterCaret\n \n let newCaretPos = charsBeforeCaret.length\n\n input.selectionStart = newCaretPos\n input.selectionEnd = newCaretPos\n}\n\ninput.addEventListener(\'input\', handleInput, false)\nRun Code Online (Sandbox Code Playgroud)\n演示: https: //codepen.io/udovichenko/pen/vYWWjmR
\n