Reputation: 616
I got an AJAX chat and this is the code to send messages:
$('#usermsg').keydown(function(e) {
var key = e.which;
if(key == 13) // the enter key code
{
var clientmsg = $("#usermsg").html();
if((jQuery.trim(clientmsg)).length==0)
{
return false;
}
$.ajax({
// .............
});
}
});
I'd like to detect if someone pressed enter more than 3 times in 2 seconds while on $('#usermsg')
What would be the shortest and best way to do it?
Upvotes: 5
Views: 164
Reputation: 756
var enterCounter = 0;
$('#usermsg').keydown(function(e) {
var key = e.which;
if(key == 13) { // the enter key code
if (++enterCounter > 3) alert('pressed enter more than 3 times in 2 seconds');
setTimeout(function(){enterCounter--;}, 2000);
var clientmsg = $("#usermsg").html();
if((jQuery.trim(clientmsg)).length==0) {
return false;
}
$.ajax({
// .............
});
}
});
Upvotes: 4
Reputation: 3509
var countTime=0;
$('#usermsg').on('keydown', function(e){
var key = e.which;
if(key == 13) { // the enter key code
if (countTime==0){
countTime++;
setTimeout(function(){countTime=0},2000)
var clientmsg = $("#usermsg").html();
if((jQuery.trim(clientmsg)).length==0) {
return false;
}
$.ajax({
// .............
});
} else {
countTime++;
if (countTime>=3) countTime=0;
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="usermsg"/>
Upvotes: 0