javascript - 替代已弃用的 e.which,以防止输入非数字字符?
问题描述
我有一个非常简单的解决方案,利用e.which
, 来防止在输入字段中输入非数字字符:
document.querySelector("input").addEventListener("keypress", function (e) {
if (e.which < 48 || e.which > 57) {
e.preventDefault();
}
});
但是,由于e.which
已被弃用,是否有另一种简单的解决方案可以用来解决这个确切的问题?如果有帮助,这是 CodePen 的演示:https ://codepen.io/obliviga/pen/YzWmaMp?editors=1111
解决方案
能够使用 e.key,如评论中建议的 luk2302:
// Only allow the input of numerical characters and other essential keys
if (
e.key !== '1'
&& e.key !== '2'
&& e.key !== '3'
&& e.key !== '4'
&& e.key !== '5'
&& e.key !== '6'
&& e.key !== '7'
&& e.key !== '8'
&& e.key !== '9'
&& e.key !== '0'
&& e.key !== 'Tab'
&& e.key !== 'Backspace'
&& e.key !== 'ArrowLeft'
&& e.key !== 'ArrowRight'
) {
e.preventDefault();
}
推荐阅读
- package - 错误:无法从 URL 或路径确定包名称
- android - RecyclerView Gridlayout 项填充其父项
- angularjs - 当模型长度是3的倍数时如何在angularjs中调用函数
- angular - Angular:将模板数据映射到其他演示文稿
- python - Django:作为字典的 SQL 结果
- multithreading - 在线程从未被阻塞的情况下,“线程在 STM 事务中无限期阻塞”
- python - 循环遍历 tif 堆栈并提取像素值的最快方法
- r - Shiny - 点击查看下一个情节
- maven - 我可以强制 Maven 验证下载的 jar 吗?
- python - 并排打印字母图案