简单javascript击键计数
我正在开发一个在线研究/调查,我需要计算参与者的击键次数。我要求他们输入LRL。。。在文本字段中模拟行走。事实证明,许多参与者(从任务花费的时间可以看出)都在复制和粘贴 我需要的东西,将计数击键,这样我就可以确定谁完成了要求的任务的参与者。这项研究是用Coldfusion编写的,我曾考虑过某种javascript/onkeydown/hidden file-field组合,但我不是真正的程序员 任何帮助都将不胜感激。谢谢简单javascript击键计数,javascript,jquery,count,keystroke,onkeydown,Javascript,Jquery,Count,Keystroke,Onkeydown,我正在开发一个在线研究/调查,我需要计算参与者的击键次数。我要求他们输入LRL。。。在文本字段中模拟行走。事实证明,许多参与者(从任务花费的时间可以看出)都在复制和粘贴 我需要的东西,将计数击键,这样我就可以确定谁完成了要求的任务的参与者。这项研究是用Coldfusion编写的,我曾考虑过某种javascript/onkeydown/hidden file-field组合,但我不是真正的程序员 任何帮助都将不胜感激。谢谢 var keyPressCount = 0; $(document).o
var keyPressCount = 0;
$(document).on("keydown",function(){
keyPressCount++;
});
看看这个
HTML:
如果您想更进一步,可以强制只注册L和R密钥():
您必须拥有jQuery库才能执行此操作。您可以使用jQuery注册keyup事件,并计算引发此事件的时间,这样您就可以知道按下了多少键。谢谢!另一个愚蠢的问题,但是我如何把它转换成一个可以传递到数据库的表单变量呢?这是两种可能的解决方案。第一种是防止复制/粘贴。第二个答案计算击键次数,但它们仍然可以复制/粘贴。bind是jqueryeah中的一个函数,它是一个方法或函数,而不是像您编写jQuery插件那样。
<input type="text" class="nopaste"/>
<input type="text" id="countstroke"/>
<span id="count"></span>
var strokeCount = 0;
$(function(){
$(".nopaste").bind("copy paste", function(e){
e.preventDefault();
});
$("#countstroke").keyup(function(){
$("#count").text("Count: " + (++strokeCount));
});
});
$("#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();
});
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;
}
});