1

参加者が行うキーストロークの数を数える必要があるオンライン調査/調査を開発しています。歩行をシミュレートするために、テキスト フィールドに lrlrlrlrlrlrl... と入力してもらいます。参加者の多くが (タスクに費やした時間からも明らかなように) コピー アンド ペーストを行っていることがわかりました。

要求どおりにタスクを完了した参加者を特定できるように、キーストロークをカウントするものが必要です。この調査は Coldfusion でプログラムされており、javascript/onkeydown/hidden ファイル フィールドの組み合わせについて考えていましたが、私は実際にはプログラマーではありません。

どんな助けでも大歓迎です。ありがとう。

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 に答える