我正在使用materialize自动完成插件来创建具有自动完成功能的多个标签输入.插件工作正常,但只有数据作为预先定义的数组传递.如果数据是从ajax调用传递的,则插件不会显示带有选项的下拉列表,就好像没有结果一样.实际上有结果,它们被缓存(使用缓存选项)并且仅在重新键入搜索短语后显示为下拉列表.
总而言之,自动完成插件不会等待ajax完成其请求并传递数据,这就是为什么第一次尝试时不显示下拉列表的原因.有没有办法让这个插件在通过ajax调用检索后通过下拉列表显示建议?
插件初始化:
autocomplete = $('#multipleInput').materialize_autocomplete({
cacheable: true,
throttling: true,
multiple: {
enable: true,
maxSize : 5
},
appender: {
el: '.ac-users'
},
dropdown: {
el: '#multipleDropdown'
},
getData: function (value, callback) {
callback(value,getAjaxDropdowValuesAutocomplete(value));
}
});
Run Code Online (Sandbox Code Playgroud)
从DB获取值的函数:
function getAjaxDropdowValuesAutocomplete(value){
var returnArray = [],
dataArray,
innerObject = {},
postParamsObj = {"search" : value};
$.ajax({
type: "POST",
url: '/search-elements',
data: postParamsObj,
success: function( msg ) {
dataArray = msg['data'];
for(var i = 0;i < dataArray.length; i++){
innerObject = {};
innerObject["id"] …Run Code Online (Sandbox Code Playgroud)