Materialise 自动完成:为什么在输入任何字符之前调用 AJAX?

Materialize autocomplete : Why AJAX called before entering any character?

我正在使用带有实现的自动完成功能,我正在使用 ajax 调用检索数据,它工作正常但是当我想在输入字符后调用 ajax 时(使用 onkeyup 事件) , 下拉列表将无法正确显示 !!!! 在我忘记之前,如果没有找到数据(因为我的其他条件不起作用),请帮助我在下拉列表中显示 "NOT FOUND"。这是我的代码,非常感谢:

$(document).ready(function() {
    var contents = $('#autocomplete-input')[0];
    contents.onkeyup = function (e) {

    $.ajax({
        type: 'GET',
        url: Routing.generate('crm_search_lead', {"search": 
        $(this).val()}),
        success: function (response) {
            var contacts = {};
            if (true === response.success) {
                var result = response.result;
                for (var i = 0; i < result.length; i++) {
                    var lastName = result[i].lastName ? 
                    result[i].lastName : '';
                    var firstName = result[i].firstName ? 
                    result[i].firstName : '';

                    contacts[lastName + " " + firstName] = null;
                }
                $('input.autocomplete').autocomplete({
                    data: contacts,
                    minLength: 2,

                });

            } else {
                $('input.autocomplete').autocomplete({
                    data: {
                        "NOT FOUND": null
                    }

                });
            }
        }
    });
    }
});

大家好 :) 我通过将 onkeyup() 更改为 focus() 来解决这个问题,这完全合乎逻辑,因为使用 onkeyup() 时,下拉列表会在输入的每个键上快速出现和消失。