我正在将jQuery Autocomplete
与Bootstrap TagsInput
合并。也就是说,在文本字段中输入会产生服务器端搜索和提前输入(第1部分,jQuery AutoComplete);然后在选择一个条目后,应将其汇总到同一框中的多标签控件中(第2部分,Bootstrap TagsInput)。
我的第1部分运行正常。我在下面得到了正确的服务器端Ajax jQuery Autocomplete行为。
$('#approverReviewers').autocomplete({
source: function( request, response ) {
$.ajax({
url: "searchVdsPerson",
dataType: "json",
type: "post",
data: {
'searchCriteria.term': request.term
}
},
success: function( data ) {
response( $.map( data.searchCriteria.vdsResult, function( item ) {
return {
label: item.fullName + ' / ' + item.mail,
value: item.id
};
}));
}
});
},
minLength: 2,
select: myCustomSelectHandler
});
接下来,我想我可以将其直接嵌入Bootstrap TagsInput的 autocomplete 属性中,如下所示。
$('#approverReviewers').tagsInput({
autocomplete_url:'searchVdsPerson',
autocomplete: { .. } // Embed AutoComplete here?
});
基于多个线程,重要的是拥有一个非NULL的autocomplete_url
,然后autocomplete
可以照常支持服务器端source
/ success
的调用:
Can we use jQueryUI autocomplete with jQuery tags input plugin?
jquery tagsinput and ui autocomplete: can they work with pre-loaded source?
但是在我的情况下,当我将自动完成代码复制到Bootstrap TagsInput的自动完成(带有autocomplete_url
)时,我开始遇到问题:它不希望使用相同的自动完成吗?
Uncaught SyntaxError: Unexpected token : dataType: "json"
Uncaught SyntaxError: Unexpected token : type: "post"
这是代码:
$('#approverReviewers').tagsInput({
autocomplete_url:'searchVdsPerson',
autocomplete: {
source: function(request, response) {
url: "searchVdsPerson",
dataType: "json",
type: "post",
data: {
'searchCriteria.term': request.term
}
},
success: function( data ) {
response( $.map( data.searchCriteria.vdsResult, function( item ) {
return {
label: item.fullName + ' / ' + item.mail,
value: item.id
};
}));
}
}
});