JQuery防止输入框上的多个后退引号

时间:2014-07-29 10:13:01

标签: jquery keydown keycode

enter image description here我有以下代码,只允许用户从键盘输入任何数字 或Num Pad和单个小数点。它运作得相当好,但我发现了 它不会阻止输入多个后引号(参见Esc键下的`按钮)。任何想法为什么以下不适用于KeyCode = 223?我使用keydown()事件并使用i' m JQuery 1.10.2,Crome和Firefox调用以下函数。

var keyCode = event.which || event.keyCode;
var isShift = event.shiftKey ? true : false;
if(isShift){
    switch(keyCode){
        case 16:
            break;
        default:
            //Allow user to use Shift and End 35, Home 36, Left Arrow 37, Right Arrow 39, Tab 9.
            if(keyCode!= 35 && keyCode!= 36 && keyCode!= 37 && keyCode!= 39 && keyCode!= 9) {
                event.preventDefault();
            }
    }
       //Allow delete 46, Tab 9, Backspace 8, Shift 16, End 35, Home 36, Left Arrow 37, Right Arrow 39.
}else if(keyCode != 46 && keyCode != 9 && keyCode != 8 && keyCode != 16 && keyCode != 35 && keyCode != 36 && keyCode != 37 && keyCode != 39){   
            if(((keyCode != 190 && keyCode != 110) || $(inputBox).val().indexOf('.') != -1) && (keyCode < 48 || keyCode > 57 && keyCode != 96 && keyCode != 97 && keyCode != 98 && keyCode != 99 && keyCode != 100 && keyCode != 101 && keyCode != 102 && keyCode != 103 && keyCode != 104 && keyCode != 105)) {
                event.preventDefault();
            }
}   

1 个答案:

答案 0 :(得分:0)

我认为它没有检测到反引号的原因是你的键盘设置,我刚测试了这个并且可以确认,将键盘设置更改为英语(英国)并使其成为默认键盘语言,我改为英语(爱尔兰语)不会阻止进入的反击。当改为英语(英国)时,它不允许我输入反引号。

  1. Windows 7
  2. 转到 - &gt;控制面板
  3. 时钟,地区&amp;语言
  4. 更改键盘或其他输入法
  5. 键盘&amp;语言选项卡
  6. 更改键盘
  7. 添加 - &gt;英语(英国) - &gt;键盘 - &gt;英国
  8. 点击“应用”
  9. 将其设置为默认键盘语言
  10. 转到语言栏 - &gt;选择英国
  11. 再次测试j809的小提琴。
  12. 所以keyCodes实际上是由键盘语言决定的,理解美国键盘的经典例子@符号是SHIFT + 2,UK @符号是SHIFT +(Hash Key左边的键)

    Video Here