Иногда при работе с пользовательскими формами возикает необходимость ограничить количество вводимых пользователем данных в 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
Dmitry
Июнь 9th, 2009 at 19:07
Спасибо за статью. Очень помогла, а то не нигде не мог найти такое простое решение.