我想阻止用户在文本框中键入某些字符(只想允许[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);
}
});
由于
答案 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?