使用typeahead

时间:2017-05-21 17:15:27

标签: javascript twitter-bootstrap typeahead.js bootstrap-tags-input

我有以下html:

<div class="form-group">
    <label><i class="fa fa-university" aria-hidden="true"></i> University</label>
    <input id="university" type="text" class="form-control input-sm" placeholder="Search">
</div>

我在taginput文件中使用ajax前缀typeahead初始化script.js

// When page loads
$(document).ready(function()
{
    // Helper function to initialise tag input with type ahead bloodhound
    function initTagInput(inputTarget) {
        var targetField = $('input#'+ inputTarget);
        targetField.tagsinput({
            typeaheadjs: {
                name: inputTarget,
                displayKey: 'name',
                valueKey: 'name',
                source: new Bloodhound({
                    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
                    queryTokenizer: Bloodhound.tokenizers.whitespace,
                    prefetch: {
                        url: '/ajax/load-dropdown-options/'+ inputTarget,
                        filter: function(list) {
                            return $.map(list, function(optionName) {
                                return { name: optionName };
                            });
                        }
                    }
                }).ttAdapter()
            },
            freeInput: false
        });
        targetField.on('itemAdded', initSearch);
    }

    // Initialise tag input fields
    initTagInput('university');
    // todo other fields

    // Method to init search (triggered by tag input)
    function initSearch()
    {
        console.log('todo search');
    }
});

这就是taginput与typeahead一起工作的重点:

enter image description here ==&gt; enter image description here

正如您所看到的,这已经奏效了。但是,itemAdded事件未触发,因为控制台为空(按照上面的测试):

enter image description here

知道可能出错的是什么?这是不行的,因为我在辅助函数中初始化它?

0 个答案:

没有答案