javascript - 当按下 Alt 键加上 Bl​​oq 号码中的数字时,防止按键

标签 javascript jquery numeric keydown

我在避免输入中的特殊字符(Alt + Bloq.num -> ☺☻♥Check♣♠•◘​​○)时遇到问题。

我的输入声明如下:

<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() 但没有成功。知道我的问题出在哪里吗?

谢谢,我非常感谢您提供的任何帮助。

更新:正如评论中所解释的,解决方案是更改按键的按键事件并更改字符代码比较数字(现在仅当( 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;
   }
 }

就这么简单!

最佳答案

Try below code it will work on each browser or if you want to use library then visit this link: https://github.com/tzuryby/jquery.hotkeys

$("#txtmy").keypress(function(event) {
  if (event.which.toString().length > 3)  {   
     event.preventDefault();
     return;
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="txtmy"/>

关于javascript - 当按下 Alt 键加上 Bl​​oq 号码中的数字时,防止按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44886130/

相关文章:

javascript - 可以用我自己的自定义图像替换光标吗?

javascript - NestJs:使用类验证器验证对象数组

javascript - 关闭其他 div 并在 jquery 的下拉菜单中保持选定的一个处于打开状态

javascript - 使用 json 数据填充下拉列表

python - 在包括标量的 numpy 数组操作中取消

javascript - Chrome - 即使先检查也无法读取未定义的属性 'status'

javascript - RGB 到 HEX 转换 JavaScript

javascript - 不允许使用负值

python - NumPy 中的 arctan2 差异

python - 如何按小数点对齐数字?