JQuery UI Autocomplete - способ показать предпочтительный - PullRequest
0 голосов
/ 15 октября 2010

Я начинающий программист / дизайнер, пытающийся настроить автозаполнение jquery ui. У меня это работает, используя объект JavaScript (массив). Массив содержит розничные магазины, в которые мы направляем наших клиентов. У нас есть определенные магазины, которые предпочитают, и поэтому мы хотели бы, чтобы они появились раньше, чем в других магазинах, но я не знаю, как отфильтровать их в результате или, если это вообще возможно.

Я хочу, чтобы «Магазин виджетов 4» появлялся первым, если кто-то вводит «Виджет». Вот код jquery:

var widgetstores = [ 
{label: "Widget Store 1", value: "1001" }, {label: "Widget Store 2", value: "1002" }, {label: "Widget Store 3", value: "1003" }, {label: "Widget Store 4", value: "1004" }, {label: "Widget Store 5", value: "1005" }, {label: "Widget Store 6", value: "1006" }
]

 $(function() {     
                $('#tags').autocomplete({
                    minLength: 3,
                    source: widgetstores,
                    focus: function(event, ui) {
                        $('#tags').val(ui.item.label);
                        return false;
                    },
                    select: function(event, ui) {
                        $('#tags').val(ui.item.label);
                        $('#customer_num').val(ui.item.value);                      
                        return false;
                    }
                })
                .data( "autocomplete" )._renderItem = function( ul, item ) {
                    return $( "<li></li>" )
                        .data( "item.autocomplete", item )
                        .append( "<a>" + item.label + "</a>" )
                        .appendTo( ul );
                };
            });

1 Ответ

1 голос
/ 15 октября 2010

Я не уверен, какую библиотеку автозаполнения вы используете, но она выглядит так:

http://docs.jquery.com/UI/Autocomplete

Эта библиотека не сортирует элементы длявы автоматически.Он использует порядок элементов, переданных в сценарий, и фильтрует их.Поэтому, если ваши элементы находятся в том порядке, в котором вы хотите их получить, прежде чем переходить к автозаполнению, они должны использовать этот порядок.

Обновление:

var widgetstores = [ 
{label: "Widget Store 4", value: "1004" }, {label: "Widget Store 1", value: "1001" }, {label: "Widget Store 2", value: "1002" }, {label: "Widget Store 3", value: "1003" }, {label: "Widget Store 5", value: "1005" }, {label: "Widget Store 6", value: "1006" }
]
...