【发布时间】:2019-09-07 12:50:27
【问题描述】:
我希望用户输入他的姓名,但我想将字符数限制为 15 个,在桌面浏览器中它可以工作。
document.querySelector('#input-name').addEventListener('keydown', function (e) {
const maxLetters = 15
document.querySelector('#input-name').addEventListener('keyup', function (e) {
userName = e.target.value
document.querySelector('#labelInputName').textContent = userName.length + "/" + maxLetters
})
userName = e.target.value
if (userName.length >= maxLetters && e.keyCode != 46 && e.keyCode != 8) {
e.preventDefault();
}
else if (e.keyCode != 46 && e.keyCode != 8) {
document.querySelector('#labelInputName').textContent = userName.length + 1 + "/" + maxLetters
}
})
所以在桌面浏览器中,它在我到达 15/15 后按键盘上的任何键,除了 Delete 和 BackSpace 不会做任何事情(甚至不会在输入字段中显示 16 个字符)...
但在移动浏览器中,我要到 15 月 15 日,而不是 16 月 15 日...... 我该如何解决?
【问题讨论】:
标签: javascript events mobile keydown preventdefault