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

时间:2010-07-07 22:08:10

标签: jquery

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

"window.event is undefined"

这是原始代码,在这种情况下我可以将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); 
    }
});

由于

2 个答案:

答案 0 :(得分: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); 
});​

jQuery normalizes event.which already ...和you can test it here:)

如果没有,则修复只是event.keyCode,您要引用作为此函数的参数传递的event,而不是window上的属性。在这种情况下,如果if条件为真,则返回...因此不需要if / else,您可以像我上面那样简化它。 / p>

答案 1 :(得分:0)

我不确定它是否适合您,但也许您可能想使用Masked Input Plugin