允许引导标签输入中的自由输入(对象作为标签)

时间:2018-10-14 15:17:44

标签: javascript jquery bootstrap-tags-input

我将引导标签输入(对象作为标签)用于标签输入。如官方文档所述Objects as tags,Typehead js自动完成建议可以很好地工作。但是,这仅允许建议的标签作为输入,换句话说,仅允许Json列表中的那些标签。我试图允许freeinputs以及列表中带有默认值的建议标签(例如:stackoverflow标签)。但是我做不对。 这是我的代码:

var cities = new Bloodhound({
            datumTokenizer: Bloodhound.tokenizers.obj.whitespace('text'),
            queryTokenizer: Bloodhound.tokenizers.whitespace,
            local: citilist //{value: 1, text: "Saint Lucia", continent: "Ararat"}... 
        });

        cities.initialize();
        var elt = $('#txt');
        elt.tagsinput({
            itemValue: 'value',
            itemText: 'text',
            typeaheadjs: {
                name: 'cities',
                displayKey: 'text',
                source: cities.ttAdapter()
            },
            freeInput: true
        });
        elt.tagsinput('add', { "value": 1, "text": "Amsterdam", "continent": "Europe" });

1 个答案:

答案 0 :(得分:3)

  

您可以尝试使用此代码。对我来说有用。请用您现有的代码编写。

var count = 0; 
$('body').on('keydown', '.tt-input', function (e) {
  if (e.keyCode === 9) {
    e.preventDefault();

    elt.tagsinput('add', { 
      value: --count, 
      text: $('.tt-input').val(), 
      continent: "Unsaved" 
    }); 

    $('.tt-input').val("");
  }
});
  

负值是新添加的标签,正值是建议的标签。

     

'.tt-input'是文本框$('#txt')类。

编辑:建议count----count(首先是-1,然后返回值),以便value的免费输入从-1开始