【发布时间】:2021-06-07 09:24:11
【问题描述】:
这是我的代码
document.addEventListener('keyup', logKey);
function logKey($event) {
var charCode = $event.keyCode;
if(charCode > 31 && (charCode < 48 || charCode > 57 || charCode > 107 || charCode > 219 || charCode > 221) && charCode != 40 && charCode != 32 && charCode != 38 && charCode != 41 && (charCode < 43 || charCode > 46)){
var inputElement = document.getElementById("input");
inputElement.focus();
inputElement.value = inputElement.value + $event.key;
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>
<input type="text" id="input">
在页面加载时,如果用户开始输入,则焦点将集中在输入上,但不允许用户输入输入的字符。到目前为止,焦点正在工作,但是当用户连续输入时,它并没有按预期工作。 请帮我解决这个问题。任何帮助将不胜感激。
【问题讨论】:
-
如果您删除
inputElement.focus(),似乎可以正常工作(在 Firefox 中) -
您要创建什么行为?在
keyup事件中附加键入的字符将复制输入 - 为什么要这样做? -
@charlietfl - 焦点工作正常。但是当开始输入时,它并没有按预期工作。
-
@RoryMcCrossan - 我不想要重复的字符。
-
那么你为什么要使用这个逻辑,当这就是它所做的一切......?如果您不想复制字符,请完全删除此 JS 事件处理程序。
标签: javascript jquery angularjs