我想阻止在输入中键入代字号~
的可能性
以下是我的代码片段:
$('#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" />
&#13;
我使用keydown
,keypressed
,keyup
尝试了与上述相同的操作,但它无法按预期工作。
有没有人有一个简单的解决方案?
答案 0 :(得分:4)
有些人说你的代码有效,有些人不知道。
因为,&#34;〜&#34;没有绑定在每个键盘布局上的相同键上 能够阻止写(或粘贴)的可能性&#34;〜&#34;对于每个人,我会做这样的事情:
$('#myInput').on("keyup", function(e) {
this.value = this.value.replace(/~/g, '');
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="myInput" />
&#13;
我们可以看到&#34;〜&#34;每次我们尝试插入一个字符时都会被删除,但我不认为这是一个问题。相反,我认为这将有助于用户理解他不能使用该角色,而不用怀疑键盘的良好功能。
可以使用input
代替keyup
来避免这种行为,但出于上述原因,我个人更喜欢这种行为。
⋅⋅⋅
通过修改正则表达式可以添加一些其他禁用字符:
$('#myInput').on("keyup", function(e) {
this.value = this.value.replace(/[~^!]/g, '');
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="myInput" />
<p>Forbidden: ~ ^ !</p>
&#13;
我希望它有所帮助。