我有以下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一起工作的重点:
正如您所看到的,这已经奏效了。但是,itemAdded
事件未触发,因为控制台为空(按照上面的测试):
知道可能出错的是什么?这是不行的,因为我在辅助函数中初始化它?