小编jac*_*cki的帖子

实现自动完成ajax

我正在使用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)

javascript jquery autocomplete materialize

5
推荐指数
1
解决办法
881
查看次数

标签 统计

autocomplete ×1

javascript ×1

jquery ×1

materialize ×1