我想阻止在输入中键入波浪号~
的可能性。
这是我的代码片段:
$('#myInput').on("keydown", function(e) {
if (e.shiftKey && e.keyCode === 192) {
e.preventDefault();
console.log(e.keyCode);
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="myInput" />
我对
keydown
,keypressed
,keyup
尝试了与上述相同的操作,但是它没有按预期工作。有没有人有一个简单的解决方案?
最佳答案
有人说您的代码有效,有人说无效。
因为在每个键盘布局上的同一键上都没有绑定“〜”。
为了能够阻止为所有人编写(或粘贴)“〜”的可能性,我将执行以下操作:
$('#myInput').on("keyup", function(e) {
this.value = this.value.replace(/~/g, '');
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="myInput" />
每次尝试插入一个字符时,我们都可以看到“〜”字符已被删除,但我认为这不是问题。相反,我认为这将帮助用户理解他不能使用该字符,而无需怀疑其键盘的功能是否良好。
可以使用
input
代替keyup
来避免这种行为,但是出于上述原因,我个人更喜欢这种方式。⋅⋅⋅⋅
通过修改正则表达式可以添加其他一些禁止的字符:
$('#myInput').on("keyup", function(e) {
this.value = this.value.replace(/[~^!]/g, '');
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="myInput" />
<p>Forbidden: ~ ^ !</p>
希望对您有所帮助。
关于javascript - 如何防止输入中出现波浪号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49731857/