Иногда при работе с пользовательскими формами возикает необходимость ограничить количество вводимых пользователем данных в input, textarea и иже с ними.

Если вы уже перепробовали варианты с maxlenght и все равно не добились нужного результата, то на помощь приходит JavaScript

Пример:
В нужную нам область (возьмем textarea), добавим следующее:

onkeyup="textCounter(this,'text-counter',2000)

предварительно создав скрипт со следующими строчками:

function textCounter( field, countfield, maxlimit ) {
  if ( field.value.length > maxlimit )
  {
    field.value = field.value.substring( 0, maxlimit );
    alert( 'Textarea value can only be 2000 characters in length.' );
    return false;
  }
  else
  {
    $(countfield).update(maxlimit - field.value.length);
  }
}

Этим самым, мы ограничиваем количество вводимых символов в textarea до 2000 знаков.

НО, особенно одаренные пользователи пользуются не только вставкой слов с клавиатуры, они используют контекстное меню, вызываемое по нажатию правой клавиши мышки. В этом случае, конечно, скрипт не поможет, но не стоит отчаиваться! В этои нам поможет функция onPaste Просто добавьте воды в textarea после вызова

onkeyup</strong>строку <code>
onpaste="textCounter(this,'text-counter',2000)

В результате у нас получится что-то вроде:

textarea name="text-count" id="text-count" cols="100%" rows="100%" 
onkeyup="textCounter(this,'text-counter',2000)"
onpaste="textCounter(this,'text-counter',2000)

Осталось только показать сколько осталось символов для ввода

<span id='text-counter' style='padding-left:220px;font-weight:bold'>
2000</span> characters remaining

Теперь у нас полноценная защита от неограниченного ввода в textarea, этот метод также работает в поле ввода input