1

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

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

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

4

3 回答 3

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();
});
于 2012-08-24T14:35:01.907 回答
0
var keyPressCount = 0;

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

看看这个小提琴

于 2012-08-24T14:30:27.227 回答
-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 库才能完成这项工作。

于 2012-08-24T14:38:48.317 回答