2012-01-19 1 views
3

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

предлагаю метод заблаговременно.

мой код:

$("#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); 
       } 

       }); 

ответ

3

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

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

+0

спасибо позвольте мне проверить это и любые другие ответы? –

+2

ОК. Не забудьте принять мой ответ, если он будет работать. Я заметил, что вы принимаете 0%. И + 1 всегда хороши :) –

+0

еще раз спасибо. Я использовал этот метод. Ограничивая счетчик при запросе .. любым другим методом? maxItemsToShow: 10 не работает –

1

Вы всегда можете просто остановить цикл после 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); 
}, 
+0

@ Andrew Whitaker это не работает ошибка получила как «результаты undefined» –

+0

любой другой метод? –

+0

@ Kandhi: Извините, у меня была опечатка. –