4

ブートストラップに tokenfield を使用したい: http://sliptree.github.io/bootstrap-tokenfield/しかし、AJAX を使用してそれを行う方法に関するドキュメントが見つからないようです。このようなjsonデータを含む.phpファイルがあり{"Hello", "Helium", "Hell"}、それをオートコンプリート値にしたいです。.php ファイルは、入力されたものと同様の値のみを返すことに注意してください。誰でもこれを行う方法を見つけることができますか? どんな助けでも大歓迎です。そのゴージャスなブートストラップトークンフィールドを使用してタグをオートコンプリートし、そこに単語が存在しない場合はオートコンプリートを禁止したいだけです。

ありがとう。

4

3 に答える 3

2

jquery-uiTwitter から、またはTwitterからオートコンプリートを実装してからtypeahead、特定のオプションを適用する必要があります。

$('#activity_tag_tokens').tokenfield({
  typeahead: {
    prefetch: '/tags.json',
    remote: '/tags.json?q=%QUERY',
  }
});
于 2013-10-28T12:20:38.340 に答える
2

Bootstrap tokenfield - ajax を使用したリモート呼び出しによる先行入力オートコンプリート

前提条件:

= stylesheet_link_tag 'sales_crm/tokenfield-typeahead.css'
= stylesheet_link_tag 'sales_crm/bootstrap-tokenfield.css'


%script{:src => "//code.jquery.com/ui/1.10.3/jquery-ui.js", :type => "text/javascript"}
= javascript_include_tag  "sales_crm/bootstrap-tokenfield.js"
= javascript_include_tag  "sales_crm/typeahead.bundle.min.js"

HAML ビュー ファイル:

%input#tokenfield-typeahead.form-control.add_locality_data{:type => "text", :value => "", :identifier=> "Locality"}/

1) BloodHound 検索エンジンを初期化する

    var engine = new Bloodhound({
                remote: {
                    url: '/sales_crm/leads/get_lead_associated_info?query=%QUERY&model_class='+$('.add_locality_data').attr("identifier"),
                    filter: function (response) {
                        var tagged_user = $('#tokenfield-typeahead').tokenfield('getTokens');
                        console.log(tagged_user)
                        return $.map(response.leads, function (user) {
                            console.log(user)
                            var exists = false;
        //                    console.log("velava saranam");
                            for (i=0; i < tagged_user.length; i++) {
                                if (user.value == tagged_user[i].value) {
                                    var exists = true;
                                }
                            }
                            if (!exists) {
                                return {
                                    value: user.value,
                                    label: user.label
                                };
                            }
                        });
                    }
                },
                datumTokenizer: function (d) {
                    return Bloodhound.tokenizers.whitespace(d.value);
                },
                queryTokenizer: Bloodhound.tokenizers.whitespace
            });

engine.initialize();

2) 次に tokenfield 関数を初期化します

$('#tokenfield-typeahead').tokenfield({
    delimiter: false,
    typeahead: [
           {
            name: 'users',
            displayKey: 'label',
            source: engine.ttAdapter()
        }
    ]
})
    .on('tokenfield:createtoken', function (e) {
        var existingTokens = $(this).tokenfield('getTokens');
        if (existingTokens.length) {
            $.each(existingTokens, function(index, token) {
                console.log(token)
                if (token.value === e.attrs.value) {
                    e.preventDefault();
                }else{
                    console.log(e.attrs.value)
                }
            });
        }else{
            console.log(e.attrs.value)
        }
    });
于 2017-06-01T08:08:48.353 に答える
0

大丈夫です...解決策を見つけます

$('#tokenfield1').tokenfield();
            var mots_cles = "";
            $.each(e.valeur_tableau_infos_tutoriel.Mots_cles, function  (index,value){
                mots_cles += value.mots_cles+',';
            })
            $('#tokenfield1').tokenfield('setTokens', mots_cles)
        }
于 2014-04-01T14:49:03.717 に答える