Просмотр поста

.
Z3RO

И еще одна фишка: индикатор оставшейся разрешенной длинны в полях ввода.

Вот jQuery код:

$('input.maxLengthIndicator, textarea.maxLengthIndicator').after('<div></div>').next().hide().end().keypress(
function (e){
  var currentLength = $(this).val().length; // Принимаем текущую длинну значения
  maxLength = $(this).attr('maxlength'); // Принимаем максимальную длинну значения
  if(!maxLength)
    maxLength = 9999; // Если максимальная длинна не указана берем 9999
  reminderLength = maxLength - currentLength; // Вычисляем оставшуюся разрешенную длинну
  if(currentLength >= maxLength)
  {
    if(e.which != 0 && e.which != 8)
    {
        e.preventDefault(); // Если длинна значения >= максимальной длинне значения и нажатая клавиша не Delete(0) и не Backspace(8), то не вставляем последний введенный символ
    }
  }
  $(this).next().show().text('Осталось ' + reminderLength + ' символов.'); // Выводим колличество оставшихся символов
});


Теперь индикатор оставшихся символов будет вставлятся после каждого поля инпут и текстареа с классом maxLengthIndicator. Например:

<input type="text" class="maxLengthIndicator" maxlength="100"/>

Примечание: Обязательно указывайте аттрибут maxlength, поскольку из него и берется максимальная длинна текста(если не указать, то будет взято 9999)

Теперь проанализируем код:

Сначала мы находим все поля input и textarea с классом maxLengthIndicator, вставляем после них пустой элемент <div></div>, скрываем его и возвращаемся обратно к текстовому полю.

keypress() -- это событие, которое происходит после того, как была нажата и отпущена клавиша.

Описание функции приведено в коде выше. Результат можно увидеть на скриншоте.
Прикрепленные файлы: