我在输入中遇到了避免特殊字符(Alt +数字来自Bloq。num - >☺☻♥♦♣♠•◘○)的问题。当Alt键加上来自Bloq号码的号码被按下时,阻止按键
我输入声明如下:
<html:text styleId="inputMaxVol" styleClass="numeric"/>
这是我的onReady
$(".numeric").keydown(function(event) {
return maskNumber();
});
而这里就是我想要做的工作(没有成功)
function maskNumber() {
if (event) {
var charCode = (event.which)? event.which : event.keyCode;
console.log(charCode);
// If not a number
if ((charCode < 47 || charCode > 58) && (charCode < 95 || charCode > 105)) {
console.log("not a number");
return false;
} else if (event.altKey) {
//No special characters admitted
console.log("Alt pressed");
return false;
}
} else {
return false;
}
}
如果我按下Alt + 1(数字键盘上的键“1”),出现白色笑脸,并在我的日志中出现一些东西我认为
18
not a number
97
Alt pressed
我也试过了event.preventDefault()没有成功。任何关于我的问题在哪里的想法?
谢谢,我真的很感谢你能提供任何帮助。
UPDATE:作为注释解释了解决方案来改变对按键的keydown事件和变化中charCode比较 - 数字(现在是仅当(charCode < 48 || charCode > 57
)由于返回的数量也发生了变化
所以。解决方法如下
$(".numeric").keypress(function(event) {
return maskNumber();
});
function maskNumber() {
if (event) {
var charCode = (event.which)? event.which : event.keyCode;
// If not a number
if (charCode < 48 || charCode > 57) {
return false;
}
} else {
return false;
}
}
就这么简单!
试试这个库:https://开头github.com/tzuryby/jquery.hotkeys – brijrajsinh