我正在使用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内用滚动条弹出“建议”下拉列表?

我希望这是有道理的,目前我有点困惑。

最佳答案

我已经检查了源代码,没有地方可以对其进行更改,以便在没有黑客的情况下完成您所需要的工作。

最接近的答案是限制每个输入的标签数量,可以是
像这里描述的那样完成:How to limit total number of inputs to textExt plugin?

   $('#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.jstextext.plugin.tags.js并寻找以下功能:

invalidateBounds()preInvalidate()postInvalidate()并进行高度调节。

关于javascript - jQuery TextExt:最大高度和滚动条,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19513378/

10-10 04:16