jQuery Catcomplete搜索不起作用

时间:2018-07-13 11:09:42

标签: jquery json jsp autocomplete

我正在尝试使用JQuery类别Catcomplete为我的网站创建搜索输入,该搜索输入将搜索位于“ /file.jsp”中另一个文件中的结果。 file.jsp的结果是一个JSON字符串(下面列出了文件内容)。问题是当我输入输入文本时,自动完成结果会增加。 例如,当我在searchDealer中写00时,结果是3,当我写0000时,结果是6,依此类推。 自动完成结果始终都是可见的。

这是我的代码:

$(function( request, response) {
var tally = new Object();
var idx;
$.widget("custom.catcomplete", $.ui.autocomplete, {
    _renderMenu: function(ul, items) {
        var self = this,currentCategory = "";
        $.each(items, function(index, item) {
            if (item.category != currentCategory) {
                ul.append("<li class='ui-autocomplete-category'>" + item.category + "(<span id='autocomplete_"+item.category+"'></span>)</li>");
                currentCategory = item.category;
            }
            if(currentCategory!=''){
                tally[currentCategory] = (tally[currentCategory]==undefined) ? 1 : tally[currentCategory]+1;}
            self._renderItem(ul, item);
        });
        for(category in tally){
            $('#autocomplete_'+category).html(tally[category]);
        };
    }
});


 $("#searchDealer").catcomplete({
     source: "file.jsp",
     minLength: 2,
     delay: 0,

             select: function(event, ui) {
                 alert('Select');
             }

         });
});

这是file.jsp的json响应:

[
 {"label":"000123 dealer S.r.l.","category":"Concessionari"},
 {"label":"000456 AUTOMOTORS abc SNC","category":"Concessionari"},
 {"label":"000789 AbcAUTO SRL","category":"Concessionari"}
]

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

我解决了。问题出在源头:

  $.ajax({
              type: "GET",
              url: "file.jsp",
              dataType: "json",
              error: function( jqXHR, textStatus, errorThrown)
              {

                if(jqXHR.status == 401)
                {
                    alert(expiredSessionMessage);
                    $('#logoutLink').find('a.linkCommon').click();
                }   
              },              
              success: function(json){
                  $("#searchDealer").catcomplete({
                  source: json



                    });

            }



        });