阻止某些字符在文本框中输入?

use*_*701 1 jquery

我想阻止用户在文本框中键入某些字符(只想允许[az],[AZ]和下划线).我从之前的Q中取出了这个,但是如果我按下箭头键(在FF 3.6中),我会得到一个js错误:

"window.event is undefined"
Run Code Online (Sandbox Code Playgroud)

这是原始代码,在这种情况下我可以将window.event更改为什么?:

$("#myTextBox").bind("keypress", function(event) { 
    var charCode = (event.which) ? event.which : window.event.keyCode;  
    if (charCode <= 13) { 
        return true; 
    } 
    else { 
        var keyChar = String.fromCharCode(charCode); 
        var re = /[a-zA-Z_]/ 
        return re.test(keyChar); 
    }
});
Run Code Online (Sandbox Code Playgroud)

谢谢

Nic*_*ver 9

你可以这样做:

$("#myTextBox").bind("keypress", function(event) { 
    var charCode = event.which;
    if (charCode <= 13) return true; 

    var keyChar = String.fromCharCode(charCode); 
    return /[a-zA-Z_]/.test(keyChar); 
});?
Run Code Online (Sandbox Code Playgroud)

jQuery规范化event.which ...... 你可以在这里测试 :)

如果没有,那么修复只是event.keyCode,你想引用event传递给这个函数的参数,而不是属性window.在这种情况下,如果if条件为真,它将返回...所以不需要if/ else,你可以像我上面那样简化它.