javascript - 尝试解析仅允许数字的脚本在 Internet Explorer 11 中不起作用
问题描述
我有这个脚本,它只允许目标输入中的数字,并防止在该输入中插入其他字符,这适用于所有浏览器,除了
Internet explorer 11。该错误作为语法错误出现在第 14 行。我怎样才能让它在 Internet Explorer 11 上运行?
控制台中的错误并没有给我太多信息,它只是用红色字母表示语法错误,它给了我这个链接https://docs.microsoft.com/en-us/scripting/javascript/misc/syntax-error-javascript所以换句话说,它并没有给我关于错误的真正有用的信息,所以我被困在那里。
document.querySelector('#numbers-only').addEventListener('keypress',preventNonNumbersInInput);
function preventNonNumbersInInput(event){
var characters = String.fromCharCode(event.which);
if(!(/[0-9]/.test(characters))){
event.preventDefault();
}
}
document.querySelector('#numbers-only').addEventListener('paste',pasteTest);
function pasteTest(event){
window.setTimeout(() => { //<-line 14
var characters =event.target.value;
window.setTimeout(() => {
if(!(/^\d+$/.test(characters))){
event.target.value = event.target.value.replace(/\D/g, '');
}
});
});
}
<input type="text" id="numbers-only">
解决方案
你应该试试下面的代码。我做了一些改变。当我在文本字段中过去 char 时,它在 ie 11 中对我有用。告诉我您是否有任何疑问。
document.querySelector('#numbers-only').addEventListener('keypress',preventNonNumbersInInput);
function preventNonNumbersInInput(event){
var key = event.which || event.keyCode || 0;
var characters = String.fromCharCode(key);
if(!(/[0-9]/.test(characters))){
event.preventDefault();
}
}
document.querySelector('#numbers-only').addEventListener('paste',pasteTest);
function pasteTest(event){
window.setTimeout(function() { // change the declaration
var characters =event.target.value;
//remove inner settimeout()
if(!(/^\d+$/.test(characters))){
event.target.value = event.target.value.replace(/\D/g, '');
}
});
}
<input type="text" id="numbers-only">
推荐阅读
- python - Django + React 由于 MIME 类型(“text/html”)不匹配(X-Content-Type-Options:nosniff),资源被阻止
- javascript - 阻止来自所有通道 Discord.js 的命令
- sql - sql查询以更新具有两个以上子级的父级
- wordpress - Wordpress - 父类别和所有子类别的自定义模板页面
- bash - 如何使用 bash read 检测输入?
- bash - 为什么`echo $(find) | wc -l`没有正确计算文件数?
- javascript - 在 ReactJs 中一一映射对象数组,而不是列出数组
- instagram - https://www.instagram.com/{username}/?__a=1 在本地工作,但不在生产环境中工作
- c# - 使用 Microsoft Graph API 创建“在线会议活动”或仅在线会议
- docker - Docker 容器对 Kubernetes 主节点的影响