结合keypress和keyup - jQuery

时间:2012-05-31 20:18:40

标签: jquery keypress keydown keyup

我正在尝试开发一个jQuery插件,以便在用户输入特定的关键短语时执行操作。

例如,我想在keyup上匹配“HELLO”。

var controllerKey = [];
$(window).keyup(function(evt) {
    var code = evt.keyCode ? evt.keyCode : evt.which;
    controllerKey.push(code);
}
[...]

然后,我将我的controllerKey与我的字符串“HELLO”(感谢str.charCodeAt())和其他一些东西进行比较,但这在这里并不重要。 此时一切正常。

当我想匹配“HeLLo”时(事实上当字符串有一些大写)时,

我的问题就会发生。我在论坛上看到keyup或keydown没有任何区别。

所以我使用按键来管理它很好,但是按键不允许我匹配箭头键和一个(在Chrome中)。

我想知道是否可以将keypress和keyup结合起来(仅当keypress与事件不匹配时)。

提前致谢。

2 个答案:

答案 0 :(得分:10)

你可以像这样组合它们:

$(window).on('keyup keypress', function(e) {
   if (e.type=="keyup") {

   } else {
      // it is keypress
   }
});

答案 1 :(得分:2)

您可以使用隐藏输入关键事件,以便进行跨浏览器区分大小写的比较。