2

Typeahead Autocomplete ボックスを作成し、tagmanager.js と結び付けています。選択したタグが先行入力候補リストから提供された選択肢の 1 つであることを確認することを除いて、すべてが機能します。

self.tagApi = $("#itemTag").tagsManager({
  onlyTagList: true,  //This option is unimplemented in TagsManager 3.0
  maxTags: 1
});

self.tAhead = $("#itemTag").typeahead({
  name: 'items',
  limit: 15,
  remote: {
    url: '/api/get_items_for_typeahead/%QUERY'
  }
}).on('typeahead:selected', function(e, data, data_set_name) {

  //I want to check that it is a valid suggestion here

  $("#itemTag").tagsManager("pushTag", data.value);

});

返されたデータセットを取得する方法を知っている人はいますか?

4

1 に答える 1

2

に a を追加filterしますremote。その中で、単純にデータを保存し、後でselectedイベント ハンドラーで使用します。このような:

$itemTag = $('#itemTag');

self.tagApi = $itemTag.tagsManager({
    onlyTagList: true,  // This option is unimplemented in TagsManager 3.0
    maxTags: 1,
});

var lastTypeaheadResponse = null;

self.tAhead = $itemTag.typeahead({
    name: 'items',
    limit: 15,
    remote: {
        url: '/api/get_items_for_typeahead/%QUERY',
        filter: function (response) {
            lastTypeaheadResponse = response;
            return response;
        },
    },
}).on('typeahead:selected', function (e, data, dataSetName) {
    // iterate over lastTypeaheadResponse and check what you want to check
    $itemTag.tagsManager('pushTag', data.value);
});
于 2013-11-03T12:37:08.803 に答える