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

I tried to create Autocomplete using jQuery Ajax. Basically, I want to make autocomplete search with dynamic field added. But while I type in the input field then it gave me this error.

JS Code

$(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);
                    }
                });
            }
        });


Solution 1:[1]

Problem Solved.

$(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);
                        }
                    });
                }
            });
        });

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Creatique IT