我的任务是创建一个计数器/限制器,当达到限制时弹出一个窗口。我写了这段代码:
$(document).ready(function() {
$('#message-input').keyup(updateCounter);
});
function updateCounter() {
var value = $('#message-input').val();
if (value.length > 256) {
alert('Túl hosszú az üzenet!');
return false;
}
var remaining = 256 - value.length;
$('#counter').text(remaining);
return true;
}这段代码运行得很好,但有一个很大的问题:如果达到了限制,我可以按任何键,总是弹出窗口,即使我按backspace。我怎么才能纠正它呢?
发布于 2013-04-14 18:30:12
您可以删除最后一个字母,以保持256个字符的长度,例如,包含子字符串。
发布于 2013-04-14 18:29:39
试试这个:
$(document).ready(function() {
$('#message-input').keyup(updateCounter);
});
function updateCounter(e) {
if( $inArray(e.which, [8, 37, 38, 39, 40])) return true; // If keycode = backspace, left, top, right, bottom array, than continue.
var value = $('#message-input').val();
if (value.length > 256) {
alert('Túl hosszú az üzenet!');
return false;
}
var remaining = 256 - value.length;
$('#counter').text(remaining);
return true;
}https://stackoverflow.com/questions/15998040
复制相似问题