2012-11-09 99 views
1

有什麼方法可以統計用戶按下[a-z] [0-9]鍵的次數?jQuery/Javascript計算一個鍵被按下多少次

我想數一下他在輸入文本上按下了多少次按鍵。

有什麼建議嗎?

+1

'onkeypress事件:{如果(event.key是[A-Z0-9])計數器++}'。當然,你必須填寫一些空白。 –

回答

3

此代碼將維持一個地圖給出了每個按鍵按鍵的數量:

你可以找到here鍵代碼和字符之間的關係

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

Demonstration(打開控制檯) 。

如果你想有一個地圖更具可讀性(以字符鍵而不是鍵碼),這樣做:

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獲得)。

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

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); 
     }  
    }); 
});​