在Firefox中使用JavaScript捕获Tab键

Rau*_*auf 6 javascript firefox jquery events keypress

我使用以下内容限制用户只输入一些字符.当我按Tab键时,光标不指向下一个控件(在Mozilla中).但它在IE中运行良好.

// Restricts user to enter characters other than a to z, A to Z and white space( )
// Rauf K. 06.11.2010
$("input:text.characters_only").keypress(function(e) {
if (!((e.which >= 65 && e.which <= 90) || (e.which >= 97 && e.which <= 122) || e.which == 32 || e.which == 8 || e.which == 9)) {
        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)

Joe*_*ton 8

我建议尝试e.keyCode而不是e.which.这是一个SO链接,它描述了一个将键敲击变为单个变量的好方法,无论如何:jQuery Event Keypress:按下了哪个键?

  • 不,`keyCode`是错误的属性,因为jQuery规范化`which`属性.您链接到的问题的大部分答案都是无可救药的错综复杂或误导. (3认同)
  • @Marcel:是的,在这种情况下是公平的.一般来说,我会避免在`keypress`处理程序中使用`keyCode`属性:如果你对按下的物理键感兴趣使用`keydown`,如果你对输入的字符感兴趣,请使用`keypress` . (2认同)

ant*_*onj 5

也许如果你从以下的东西开始:

if (e.keyCode === 9) { // TAB
    return true;
}
Run Code Online (Sandbox Code Playgroud)