Ограничение результатов автозаполнения jquery

Мне нужно ограничить количество строк 10 при автозаполнении. Данные из бд. Есть ли какой-либо атрибут, например «maxrows» или что-то в этом роде? Я не хочу добавлять свиток.

пожалуйста, предложите метод спасибо заранее.

мой код:

$("#iIdlbl").autocomplete({
                    source : function(request, response) {      

                    var value = jQuery("#iIdlbl").val();


                    $.ajax( {
                        url : 'getiId.html',
                        dataType : 'json',
                        data : {
                            filter : value
                        },
                        success : function(data) {

                            response(jQuery.map(data.iList,function(item) {
                                                return {
                                                    value : item.iId,
                                                    key : item.iId

                                                };
                                            }));


                },
                error : function(XMLHttpRequest,textStatus,errorThrown) {
                    $.loader('close');
                }
                    });

                },

                minLength : 0,
                open : function() {
                    $(this).removeClass(
                            "ui-corner-all").addClass(
                            "ui-corner-top");
                },

                close : function() {
                    $(this).removeClass(
                            "ui-corner-top").addClass(
                            "ui-corner-all");
                },
                select : function(event, ui) {
                    searchById(ui.item.value);
                }

                });  

person ıllıllı lק ıllıllı    schedule 19.01.2012    source источник


Ответы (2)


Самый простой способ — ограничить количество возвращаемых результатов в источнике.

поэтому в getiId.html ограничьте количество элементов до 10

person joe_coolish    schedule 19.01.2012
comment
в порядке. Не забудьте принять мой ответ, если он работает. Я заметил, что у вас 0% принятия. И +1 всегда здорово :) - person joe_coolish; 19.01.2012
comment
еще раз спасибо, я использовал этот метод. Ограничивая количество в запросе... любой другой метод? maxItemsToShow: 10 не работает - person ıllıllı lק ıllıllı; 19.01.2012

Вы всегда можете просто остановить цикл после 10 результатов в вашей функции success:

success : function(data) {
    var results = [], i, 
        length = 10 < data.iList.length ? 10 : data.iList.length;

    for (i = 0; i < length; i++) {
        results.push({
           value: item.iId,
           key: item.iId
        });
    }
    response(results);
},
person Andrew Whitaker    schedule 19.01.2012
comment
@ Эндрю Уитакер, это не работает, ошибка выглядит как «результаты не определены». - person ıllıllı lק ıllıllı; 19.01.2012
comment
@Kandhi: Извините, у меня была опечатка. - person Andrew Whitaker; 19.01.2012
comment
@Kandhi: это недопустимый вариант для этого виджета. Вам нужно реализовать этот функционал самостоятельно. - person Andrew Whitaker; 20.01.2012