Параметр поиска не работает в JQuery Автозаполнение пользовательского интерфейса (Catcomplete) - PullRequest
0 голосов
/ 04 мая 2020

Используя JQuery Автозаполнение пользовательского интерфейса, более конкретно функцию CatComplete, я реализовал базовое поле c автозаполнения, например:


// This is the array used for searching: 

splitTeamData = [
    {category: 'people', label: 'John', value: 'RSKasich' },
    {category: 'people', label: 'Kylian' value: 'RSMbappe'},
    // ...
];

// This is JQuery UI's Autocomplete with categories:

$.widget( "custom.catcomplete", $.ui.autocomplete, {
    _create: function() {
        this._super();
        this.widget().menu( "option", "items", "> :not(.ui-autocomplete-category)" );
     },
    _renderMenu: function( ul, items ) {
        let that = this,
        currentCategory = "";
        $.each(items, function( index, item ) {
        let li;
        if ( item.category !== currentCategory ) {
            ul.append( "<li class='ui-autocomplete-category condensed-font'>" + item.category + "</li>" );
            currentCategory = item.category;
        }
        li = that._renderItemData( ul, item );
        if ( item.category ) {
            li.attr( "aria-label", item.category + " : " + item.label );
        }
    });
    },
    _renderItem: function(ul, item){
        return $('<li>').append("<div>" + item.value + "</div>").appendTo(ul);
    }
});

// This is my search box: 

$( "#team-search" ).catcomplete({
    delay: 0,
    source: splitTeamData,
    focus: function(){
        return false;
    },
    // Where I'm having problems:
    search: function(value, target){
        return 'RS' + value.delegateTarget.value
    }
});

По сути, когда пользователь вводит Kasich, используя Встроенная функция search будет предшествовать RS перед ней, ища RSKasich вместо Kasich Однако это не так, хотя JQuery Документация пользовательского интерфейса говорит, что это должен.

...