我想在我的页面中阻止一些特殊字符。所以我写了keypress
,keydown
和paste
个事件来阻止这些字符。我在keydown事件中遇到了一些问题,仅在Firefox中。
这是我的代码:
document.addEventListener('keydown', function (e) {
var SPCHARS = [192, 222]; //for [~"`']
var SPCHARS_ONSHIFT = [54, 109, 219, 221, 188, 190, 55]; //for [_{}'<>^&]
var charCode = (e.which) ? e.which : e.keyCode;
if ($.grep(SPCHARS, function (e) { return e == charCode; }).length > 0) {
e.preventDefault();
}
else if (typeof e.shiftKey == "boolean" && e.shiftKey && $.grep(SPCHARS_ONSHIFT, function (e) { return e == charCode; }).length > 0) {
e.preventDefault();
}
}, true);
问题是,当用户按右箭头键时,此事件会抑制该事件。调试时,我发现代码总是会跳转到&#34;否则如果&#34;条件 - 即使条件为false
。它在铬方面工作得很好。任何想法????
请注意,我必须使用此keydown
事件,因为我在页面中也使用了infragistics网格。