JQuery AutoComplete лимит результатов - PullRequest
3 голосов
/ 19 января 2012

Мне нужно ограничить номера строк 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);
                }

                });  

Ответы [ 2 ]

4 голосов
/ 19 января 2012

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

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

1 голос
/ 19 января 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);
},
...