を望んでいたとして、あなたがそれを使用することができ
var try_counter = 0;
var container = [[],[],[]];
function onKeyHit(){
var time = new Date().getTime();
container[try_counter].push(time);
}
function onSumbitButtonHit(){
try_counter++;
}
そして、あなたは差をとることにより、比較的容易に平均値を計算することができます現在および次のキーストローク(存在する場合)そこから、差の合計を合計キーストローク数(マイナス1)で単純に平均化することができます。注:これはこれまでの中で最も洗練されたソリューションではないかもしれませんが、概念の良い証拠です。
/**
* Log the keypresses
*/
var handler = function(e) {
var inputName = $(this).attr("name");
if (inputName == "password1") handler.data.password1.push(e);
if (inputName == "password2") handler.data.password2.push(e);
if (inputName == "password3") handler.data.password3.push(e);
}
// Init data
handler.data = {};
handler.data.password1 = [];
handler.data.password2 = [];
handler.data.password3 = [];
$(":password").on("keyup", handler);
/**
* Calculate averages
*/
function getAvg(dataInput) {
var sum = 0;
$.each(dataInput, function(index, value) {
if (typeof dataInput[index + 1] != 'undefined') {
sum += (dataInput[index + 1].timeStamp - value.timeStamp);
}
});
return sum/dataInput.length;
}
/**
* Run calculations
*/
$("input[type='submit']").on('click', function(e) {
var pw1 = $("input[name='password1']"),
pw2 = $("input[name='password2']"),
pw3 = $("input[name='password3']");
e.preventDefault();
if (pw1.val().length && pw1.val() == pw2.val() && pw1.val() == pw3.val()) {
var pw1Avg = getAvg(handler.data.password1),
pw2Avg = getAvg(handler.data.password2),
pw3Avg = getAvg(handler.data.password3);
$("#output").html('PW1 Avg between key strokes: ' + Math.round(pw1Avg) + 'ms<br>' +
'PW2 Avg between key strokes: ' + Math.round(pw2Avg) + 'ms<br>' +
'PW3 Avg between key strokes: ' + Math.round(pw3Avg) + 'ms');
// Reset data
$("input[type='password']").val('');
handler.data = {};
handler.data.password1 = [];
handler.data.password2 = [];
handler.data.password3 = [];
} else {
$("#output").html('All passwords must match!');
}
return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form method="get">
<p>
<input type="password" name="password1">
</p>
<p>
<input type="password" name="password2">
</p>
<p>
<input type="password" name="password3">
</p>
<p>
<input type="submit">
</p>
</form>
<p id="output"></p>
コードを試してみましたが、それは私のブラウザでは動作しません。私はsrcのgoogle apiリンクと関係があると思う。何が問題なのか知っていますか? –
コンソールで確認してください –