简单的javascript击键计数

时间:2012-08-24 14:23:57

标签: javascript jquery count keystroke onkeydown

我正在开发一个在线学习/调查,我需要计算参与者的击键次数。我要求他们在文本字段中输入lrlrlrlrlrlrl ...来模拟步行。事实证明,许多参与者(正如在任务上花费的时间所证明的那样)正在复制和粘贴。

我需要一些可以计算击键次数的东西,这样我就可以识别按要求完成任务的参与者。该研究是在Coldfusion中编程的,我正在考虑某种javascript / onkeydown / hidden文件字段组合,但我不是真正的程序员。

任何帮助将不胜感激。感谢。

3 个答案:

答案 0 :(得分:3)

http://jsfiddle.net/kBJGM/

HTML:

<input type="text" class="nopaste"/>
<input type="text" id="countstroke"/>
<span id="count"></span>​

使用Javascript:

var strokeCount = 0;

$(function(){

    $(".nopaste").bind("copy paste", function(e){
        e.preventDefault();
    });

    $("#countstroke").keyup(function(){
        $("#count").text("Count: " + (++strokeCount));
    });
});​

如果您想更进一步,可以强制只注册L和R键(http://jsfiddle.net/kBJGM/5/):

$("#restrictivecount").keypress(function(e){
    var seq = rstrokeCount % 2;
    var allow = true;
    switch(e.keyCode){
        case 76:
        case 108: // L or l
            if (seq == 1) allow = false;
        break;
        case 82:
        case 114: // R or r
            if (seq == 0) allow = false;
        break;               
        default:
            allow = false;
        break;               
    }

    if (allow)
        $("#rcount").text("Count: " + (++rstrokeCount));
    else
        e.preventDefault();
});

答案 1 :(得分:0)

var keyPressCount = 0;

$(document).on("keydown",function(){
   keyPressCount++;
});

查看此fiddle

答案 2 :(得分:-1)

count=0;

$(document).bind('keydown', function(event){
    var keyCode = event.keyCode;
    switch(keyCode){
        case 39:
            alert('Right arrow was pressed');
            count++;
            break;
        case 37:
            alert('Left arrow was pressed');
            count++;
            break;
    }
});

您必须拥有jQuery库才能使其正常工作。