jQuery TextExt: максимальная высота и полоса прокрутки

Я использую плагин jQuery TextExt ( http://textextjs.com/) для создания поля ввода, в котором пользователь может вводить языки в качестве тегов, аналогично способу ввода тегов в Facebook.

В целом, плагин прекрасно работает.

Тем не менее, я наткнулся на загадку, которую не могу преодолеть. Я использую TextExt в поле ввода, например:

<script type="text/javascript">
    $('#id_languages').textext({
    plugins : 'tags prompt suggestions arrow autocomplete',
    tagsItems : ['English'],
    suggestions : languages, //variable set earlier
    prompt : 'Add more here...',
});
</script>

Который работает как следует. Теперь, чем больше тегов я добавляю, тем больше увеличивается поле ввода (как и ожидалось).

Тем не менее, в какой-то момент он вырастает за пределы высоты, которая приемлема в моем данном макете.

Есть ли рабочий способ указания максимальной высоты элемента ввода с использованием TextExt, плюс добавление вертикальной полосы прокрутки, без раскрывающегося раскрывающегося списка "Предложения" внутри div с полосой прокрутки?

Я надеюсь, что это имеет смысл, я немного запутался в данный момент.

1 ответ

Решение

Я проверил исходный код, и нет места, где его можно изменить, чтобы выполнить то, что вам нужно, без взлома.

Наиболее близким ответом на это является ограничение количества тегов на вход, что можно сделать, как описано здесь: Как ограничить общее количество входов плагином textExt?

   $('#id_languages').textext({
                plugins : 'tags autocomplete',
                tagsItems : Sourcearray,
                ext: {
                   tags: {
                     addTags: function(tags) {
                         if(checkLength()) {
                            $.fn.textext.TextExtTags.prototype.addTags.apply(this, arguments);
                         }
                     }
                   }
                 }
   });

и вот функция проверки checkLength():

function checkLength(){
   if($("#id_languages").next().children().length < 4){
      return true;
   }
  return false;
}

Где число 4 - это количество разрешенных тегов.

Если это не будет удовлетворительным, вам придется взломать textext.core.js а также textext.plugin.tags.js и искать следующие функции:

invalidateBounds(), preInvalidate() а также postInvalidate() и играть с манипулированием высотой.

Другие вопросы по тегам