Javascript 在jquery中按类别搜索自动完成

Javascript 在jquery中按类别搜索自动完成,javascript,jquery,autocomplete,Javascript,Jquery,Autocomplete,我正在使用分类智能jquery autocomplete在下拉列表中显示列表。我将城市名称作为标签传递,将国家名称作为类别传递。按标签名称搜索效果很好,但我想提供按国家搜索的选项。如果用户键入国家/地区名称,则该国家/地区的所有城市都应显示在下拉列表中 所以,如果用户键入australia,那么我需要找到类别为australia的所有Lebel,并在下拉列表中显示它们 我附上了显示当前功能的图片 javascript代码是 $( "#loading" ).catcomplete ({

我正在使用分类智能jquery autocomplete在下拉列表中显示列表。我将城市名称作为标签传递,将国家名称作为类别传递。按标签名称搜索效果很好,但我想提供按国家搜索的选项。如果用户键入国家/地区名称,则该国家/地区的所有城市都应显示在下拉列表中

所以,如果用户键入australia,那么我需要找到类别为australia的所有Lebel,并在下拉列表中显示它们

我附上了显示当前功能的图片

javascript代码是

  $( "#loading" ).catcomplete
  ({

    source: function( request, response ) 
    {

        $.ajax({
              url: 'URL to fucntion',
              dataType: "json",
              data: {},
              async:true,
              success: function(data) {
                  var cat_data = $.map(data, function(item) { 
                      return {
                          label: item.label,
                          category: item.category,

                      };
                  });
                  $("#loading").catcomplete({
                      source: cat_data,
                      minlength:0,
                      delay: 0

                  });
              }
          });

          },

        response: function(event, ui) {
        if (!ui.content.length) {                                        

            $( "#loading" ).catcomplete({
              source: [{"label":"australia","category":"sydney"},{"label":"australia","category":"melbourne"}]
            });


        } else {
            $("#message").empty();
        }
    } 

  }); 

嗨,我用下面的代码解决了它

在json响应中使用value和desc,而不是label和category

    $( "#loading" ).autocomplete({

        source: Json data here,
        focus: function( event, ui ) {
          $( "#loading" ).val( ui.item.label );
          return false;
        },
        select: function( event, ui ) {
          $( "#loading" ).val( ui.item.desc );
          $( "#loading-id" ).val( ui.item.value );
          $( "#loading-description" ).html( ui.item.desc );


          return false;
        }
      })
      .autocomplete( "instance" )._renderItem = function( ul, item ) { 
        return $( "<li>" )
          .append( "<div>"  + item.desc + "</div>" )
          .appendTo( ul );
      };
$(“#加载”).自动完成({
来源:这里是Json数据,
焦点:功能(事件、用户界面){
$(“#加载”).val(ui.item.label);
返回false;
},
选择:功能(事件、用户界面){
$(“#加载”).val(ui.item.desc);
$(“#加载id”).val(ui.item.value);
$(“#加载说明”).html(ui.item.desc);
返回false;
}
})
.autocomplete(“实例”)。\u renderItem=函数(ul,项){
返回$(“
  • ”) .append(“+item.desc+”) .附录(ul); };
  • 听起来是个棘手的问题。。到目前为止,你试过哪些不起作用的?(我知道你不只是要求别人为你写一个解决方案,而不是自己先尝试)我认为你应该在服务器上这样做。客户端根本不关心过滤(在您的情况下)@mike510a我尝试过,如果用户键入了什么,如果它与任何城市名称不匹配,但与国家名称匹配,则选择国家作为标签,城市作为类别。但是这个解决方案并没有像预期的那样工作。你能把代码也包括进去吗?也许我们可以帮你修复它。我用硬编码值进行了更新