Ошибка автозаполнения Jquery выбор меню и menufocus не могут прочитать неопределенное значение свойства

#jquery-ui #autocomplete #jquery-ui-autocomplete

#jquery-пользовательский интерфейс #автозаполнение #jquery-ui-автозаполнение

Вопрос:

 $('.searchName').autocomplete({ 
        source: function(req, res){
            $.ajax({ 
                url: "{{ route('airportSearch') }}", 
                dataType: "json", 
                type: "GET", 
                data: req,
                beforeSend: function() {
                    $('#iconMaps').hide();
                    $('#loadingMaps').show();
                },
                success: function (data){ 
                    $('#iconMaps').show();
                    $('#loadingMaps').hide();
                    res(data);
                    console.log(data)
                }, 
                error: function(err){ 
                    $('#iconMaps').show();
                    $('#loadingMaps').hide();
                } 
            });
        }
    }).data('ui-autocomplete')._renderItem = function(ul, item) {
        return $('<li>')
            .data('ui-autocomplete', item)
            .append('<span><b>'   item.label   '</b></span><br><span>'   item.value   '</span>')
            .appendTo(ul);
    }
  

это мой код, у меня проблема, если в выбранном списке есть ошибка:

Не удается прочитать значение свойства ‘значение’ undefined.

Как устранить эту ошибку?

Комментарии:

1. Добро пожаловать в Stack Overflow. Пожалуйста, приведите пример результата data .

2. В этом примере результирующие данные [{ Название города: «МАДРИД» метка: «МАДРИД, ИСПАНИЯ» имя: «БЕЗУМНЫЙ АДОЛЬФО СУАРЕС БАРАХАС» значение: «МАДРИД, ИСПАНИЯ, (БЕЗУМНЫЙ)» }]

3. В data примере кажется, что , между парами ключ / значение отсутствуют запятые?

4. прошу прощения. Я написал неправильно, должно быть [{ Название города: «МАДРИД», метка: «МАДРИД, ИСПАНИЯ», имя: «БЕЗУМНЫЙ АДОЛЬФО СУАРЕС БАРАХАС», значение: «МАДРИД, ИСПАНИЯ, (БЕЗУМНЫЙ)» }]

Ответ №1:

У меня была аналогичная проблема после обновления версии jQuery, и я исправил ее, применив несколько изменений в data(), как показано ниже:

 .data('uiAutocomplete')._renderItem = function(ul, item) {
    return $('<li>')
        .data('ui-autocomplete-item', item)
        .append('<span><b>'   item.label   '</b></span><br><span>'   item.value   '</span>')
        .appendTo(ul);