jQuery плагин ограничения количества вводимых символов в textarea

Пример как ограничить количество вводимых символов в TEXTAREA, т.е. используя JavaScript (и библиотеку jQuery) эмитировать действие атрибута maxlength.

Нам понадобится использовать библиотеку jQuery. Как обычно:

<script src="путь/к/jquery.js" type="text/javascript"></script>

Код плагина с небольшими комментариями:

<script type="text/javascript">
// создаём плагин maxlength
jQuery.fn.maxlength = function(options) {
  // определяем параметры по умолчанию и прописываем указанные при обращении
  var settings = jQuery.extend({
    maxChars: 10, // максимальное колличество символов
    leftChars: "character left" // текст в конце строки информера
  }, options);
  // выполняем плагин для каждого объекта
  return this.each(function() {
    // определяем объект
    var me = $(this);
    // определяем динамическую переменную колличества оставшихся для ввода символов
    var l = settings.maxChars;
    // определяем события на которые нужно реагировать
    me.bind('keydown keypress keyup',function(e) {
      // если строка больше maxChars урезаем её
      if(me.val().length>settings.maxChars) me.val(me.val().substr(0,settings.maxChars));
      // определяем колличество оставшихся для ввода сиволов
      l = settings.maxChars - me.val().length;
      // отображаем значение в информере
      me.next('div').html(l + ' ' + settings.leftChars);
    });
    // вставка информера после объекта
    me.after('<div class="maxlen">' + settings.maxChars + ' ' + settings.leftChars + '</div>');
  });
};
</script>

Как вы видите, код получился небольшим и в чем-то даже понятным. Лучше всего его поместить в отдельный файл, скажем maxlength.js. Осталось лишь инициировать действие плагина для TEXTAREA. Как таковой, это можно сделать по ID, классу или тегу. Я предпочитаю ID, как наиболее определённый. Выглядеть это может следующим образом:

<script type="text/javascript">
$(document).ready(function(){
$("#textarea").maxlength();
});
</script>
<textarea id='textarea' style='width:100%; height:200px'></textarea>

Здесь просто дожидаемся загрузки документа и инициализируем наш плагим. Стоит также отметить, что вы можете прописать свои параметры для maxlength(). Сделать это можно, к примеру, следующим образом:

$('#textarea).maxlength({ maxChars: 160 });

Взято с Курилка.co.ua дабы потом не искать. Спасибо им большое.


Оставьте комментарий