jqueryui自动完成的建议数量

时间:2015-09-04 09:54:13

标签: jquery jquery-ui autocomplete limit autosuggest

我正在使用jqueryUI自动完成脚本。问题是我想将它提供的建议数量限制为6,因为它提供了太多建议。这是脚本:

$.get('file.txt', function(x) {

    var i;
    var pos = 0;
    var availableTags = [];

    x = x.split(/[\#\n]+/);

    for (i = 0; i < x.length; i = i + 4)
      availableTags[pos++] = x[i];

    console.log(availableTags);

    $(function() {
      $("#search").autocomplete({source: availableTags});
      response(availableTags.slice(0, 6));
    });

    }, 'text');

我发现并excellent solution by Andrew Whitaker但无法使其发挥作用。他建议使用

response(availableTags.slice(0, 6));

任何限制我的脚本建议数量的解决方案?

2 个答案:

答案 0 :(得分:2)

您可以覆盖_renderMenu函数以显示最多N个项目

$.ui.autocomplete.prototype._renderMenu = function( ul, items ) {
   var self = this;
   $.each( items, function( index, item ) {
      if (index < 10) // here we define how many results to show
         {self._renderItem( ul, item );}
      });
}

或切片响应:

$("#search").autocomplete({ 
    source: function(request, response) {
        var results = $.ui.autocomplete.filter(availableTags, request.term);

        response(results.slice(0, 6));
    }
});

答案 1 :(得分:0)

$(function() {
    var limit = 3;
    var tags = [
      "hello","hi", "him", 'here',"his", "honour", "banquet"
    ];
    $( "#search" ).autocomplete({
        source: tags.slice(0, limit),

        });
});

请找到上述解决方案,并告诉我它是否适合您。