Это полностью не проверено, но оно должно делать то, что вам нужно.
Обновление: вот jsfiddle для просмотра. Кажется, работает. ссылка
Вы должны вставить его в файл js и ссылаться на него после ссылки jquery.
Вы бы тогда назвали это так ...
$("textarea").characterCounter(200);
Краткое объяснение происходящего ..
При каждом событии нажатия клавиши функция проверяет, какой тип клавиши был нажат. Если это приемлемо, счетчик проверит счет, обрежет любое превышение и предотвратит дальнейший ввод после достижения предела.
Плагин также должен обрабатывать вставку в цель.
; (function ($) {
$.fn.characterCounter = function (limit) {
return this.filter("textarea, input:text").each(function () {
var $this = $(this),
checkCharacters = function (event) {
if ($this.val().length > limit) {
// Trim the string as paste would allow you to make it
// more than the limit.
$this.val($this.val().substring(0, limit))
// Cancel the original event
event.preventDefault();
event.stopPropagation();
}
};
$this.keyup(function (event) {
// Keys "enumeration"
var keys = {
BACKSPACE: 8,
TAB: 9,
LEFT: 37,
UP: 38,
RIGHT: 39,
DOWN: 40
};
// which normalizes keycode and charcode.
switch (event.which) {
case keys.UP:
case keys.DOWN:
case keys.LEFT:
case keys.RIGHT:
case keys.TAB:
break;
default:
checkCharacters(event);
break;
}
});
// Handle cut/paste.
$this.bind("paste cut", function (event) {
// Delay so that paste value is captured.
setTimeout(function () { checkCharacters(event); event = null; }, 150);
});
});
};
} (jQuery));