7

我正在尝试开发一个 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 没有任何区别。

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

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

提前致谢。

4

2 回答 2

13

你可以像这样组合它们:

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

   } else {
      // it is keypress
   }
});
于 2012-05-31T20:31:48.353 回答
2

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

于 2012-05-31T20:33:59.600 回答