Error : Uncaught TypeError: this.source is not a function

Error : Uncaught TypeError: this.source is not a function

我尝试使用 jQuery Ajax 创建自动完成功能。基本上,我想在添加动态字段的情况下进行自动完成搜索。但是当我在输入字段中输入时,它给了我这个错误。

JS代码

$(document).ready(function() {
            var arrayReturn = []
            $.ajax({
                url: "/suppliers",
                async: true,
                dataType: 'json',
                success: function(data) {
                    for (var i = 0; i < data.length; i++) {
                        var id = (data[i].id).toString();
                        arrayReturn.push({'value' : data[i].name, 'data' : id})
                    }
                    printSupplier(arrayReturn);
                }
            });
            function printSupplier(suppliers) {
                $('#purchase_item_search').autocomplete({
                    lookup: suppliers,
                    onSelect: function (result) {
                        $('#autocom-box').html(result.value);
                    }
                });
            }
        });

问题已解决。

$(document).ready(function() {
            $("#purchase_item_search").on('keyup', function() {
                var arrayReturn = []
                $.ajax({
                    url: "/suppliers",
                    dataType: 'json',
                    success: function(data) {
                        // console.log(data['suppliers'].length);
                        for (var i = 0; i < data['suppliers'].length; i++) {
                            var id = (data['suppliers'][i].id).toString();
                            arrayReturn.push({
                                'value': data['suppliers'][i].name,
                                'data': id
                            })
                        }
                        printSupplier(arrayReturn);
                    }
                });

                function printSupplier(options) {
                    $('#purchase_item_search').autocomplete({
                        source: options,
                        onSelect: function(result) {
                            // $('#autocom-box').html(result.value);
                            console.log(result);
                        }
                    });
                }
            });
        });