带有对象的Bootstrap标签输入作为标签标头免费输入不起作用

时间:2019-04-03 07:57:40

标签: laravel typeahead bloodhound bootstrap-tags-input

我将引导标签输入(对象作为标签-https://bootstrap-tagsinput.github.io/bootstrap-tagsinput/examples/)用于标签输入。 可以将Objects用作自动完成建议的标签。

但是我也尝试激活免费输入。因此,如果标签不在自动建议列表中,则可以添加新标签。

这是我的代码:


var tags = new Bloodhound({
  datumTokenizer: Bloodhound.tokenizers.obj.whitespace('text'),
  queryTokenizer: Bloodhound.tokenizers.whitespace,
   prefetch:  {
        ttl: 1,
        url:'[Json File Path]'
        }
});
tags.initialize();

var elt = $('input#tags');

elt.tagsinput({
  tagClass: 'badge badge-primary',
   itemValue: function(item) {
    return item.id;
  },
  itemText: 'text',
  freeInput: true,
   typeaheadjs: {
    name: 'tags',
    displayKey: 'text',
    source: tags.ttAdapter()
  } 
});

Json示例:

[{"id":15,"text":"money"},{"id":14,"text":"startup"},{"id":13,"text":"inspiration"},{"id":12,"text":"success"},{"id":11,"text":"challenge"}]

1 个答案:

答案 0 :(得分:0)

jS

var citynames = new Bloodhound({
datumTokenizer: 

Bloodhound.tokenizers.obj.whitespace('name'),
  queryTokenizer: Bloodhound.tokenizers.whitespace,
  prefetch: {
    url: 'https://bootstrap-tagsinput.github.io/bootstrap-tagsinput/examples/assets/citynames.json',
    filter: function(list) {
      return $.map(list, function(cityname) {
        return { name: cityname }; });
    }
  }
});
citynames.initialize();

$('input').tagsinput({
  typeaheadjs: {
    name: 'citynames',
    displayKey: 'name',
    valueKey: 'name',
    source: citynames.ttAdapter()
  }
});

html

    <div class="container">
  <div class="col-12-xs">
    <div class="">
      <input type="text" value="Amsterdam,Washington" />
    </div>
  </div>
</div>

CSS

    .icon-github {
    background: no-repeat url('../img/github-16px.png');
    width: 16px;
    height: 16px;
}

.bootstrap-tagsinput {
    width: 100%;
}

.accordion {
    margin-bottom:-3px;
}

.accordion-group {
    border: none;
}

.twitter-typeahead .tt-query,
.twitter-typeahead .tt-hint {
    margin-bottom: 0;
}

.twitter-typeahead .tt-hint
{
    display: none;
}

.tt-menu {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 1000;
    display: none;
    float: left;
    min-width: 160px;
    padding: 5px 0;
    margin: 2px 0 0;
    list-style: none;
    font-size: 14px;
    background-color: #ffffff;
    border: 1px solid #cccccc;
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 4px;
    -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
    background-clip: padding-box;
    cursor: pointer;
}

.tt-suggestion {
    display: block;
    padding: 3px 20px;
    clear: both;
    font-weight: normal;
    line-height: 1.428571429;
    color: #333333;
    white-space: nowrap;
}

.tt-suggestion:hover,
.tt-suggestion:focus {
  color: #ffffff;
  text-decoration: none;
  outline: 0;
  background-color: #428bca;
}

Codepen Codepen