1

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 内に提案ドロップダウンをポップアップさせない方法はありますか?

私はそれが理にかなっていることを願っています、私は現時点で少し混乱しています.

4

1 に答える 1

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.jstextext.plugin.tags.js次の関数を探す必要があります。

invalidateBounds()preInvalidate() およびpostInvalidate()高さ操作で遊んでください。

于 2013-10-23T21:29:36.927 に答える