jQuery / Javascript计算按下按键的次数

时间:2012-11-09 10:25:43

标签: javascript jquery keypress

有没有办法计算用户按下[a-z] [0-9]键的次数?

我想计算他在输入文字上按键的次数。

有什么建议吗?

3 个答案:

答案 0 :(得分:3)

此代码将维护一个地图,为每个键提供按键次数:

var map = {};
$('input')​​​​.keyup(function(e){
    var key = e.keyCode;
    if (key>=48 && key<=90) map[key] = (map[key]||0)+1;
});​

Demonstration(打开控制台)

您可以找到here密钥代码与字符之间的关系。

如果您希望地图更具可读性(将字符作为键而不是键代码),请执行以下操作:

var map = {};
$('input').keyup(function(e){
    if (e.keyCode>=48 && e.keyCode<=90) {
      var key = String.fromCharCode(e.keyCode);
      map[key] = (map[key]||0)+1;
    }
});​

Demonstration(打开控制台)

但是在分析结束时分析字符串(使用val获得)可能会更容易。

答案 1 :(得分:2)

此代码有效,将#yourinputid替换为您输入的ID,将keycode == '13'替换为您要计算的密钥,13实际上是Enter。只需查看nbr的值,您就会知道按下按键的时间。

var nbr = 0;
    $('#yourinputid').keypress(
       function(event)
       {     
        var keycode = (event.keyCode ? event.keyCode : event.which);
        if(keycode == '13'){
            nbr++;  
       }
    });
祝你好运。

如果使用OR语句更改条件,则可以添加多个键码。

答案 2 :(得分:2)

DEMO

$(document).ready(function() {
    var count = 0;
    $('#txt').keypress(function(event){
        var key_code = event.keyCode ? event.keyCode : event.which;
        if((key_code  >=97 && key_code  <=122) || (key_code  >=48 && key_code <=57)){
           $('#cnt').html(++count);
        }     
    });
});​