2017-01-03 1 views
0

Я пользуюсь категорией wise jquery autocomplete https://jqueryui.com/autocomplete/#categories, чтобы показать список в списке. Я передаю названия городов в качестве метки и названия страны как категории. поиск по названию ярлыка отлично работает, но я хочу дать возможность искать по стране. Если пользователь вводит название страны, то в раскрывающемся списке должны отображаться все города из страны.Поиск по категориям в Японии: jquery auto complete

Так что если тип пользователя австралия, то мне нужно найти все lebels в категории австралии и показать их в выпадающем

Я прилагаю изображение, которое показывает текущую функциональность

enter image description here

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

    }); 
+1

Звучит как жесткая проблема .. Что вы пробовали до сих пор, что не работало? (Я знаю, что вы не просто требовали, чтобы кто-то написал решение для вас, не пытаясь сначала это сделать) – mike510a

+0

Я думаю, вы должны сделать это на сервере. Клиент не заботится о фильтрации вообще (в вашем случае) –

+0

@ mike510a Я пробовал, если пользователь что-то набирает, и если он не соответствует ни одному имени города, а соответствует имени страны, выберите страну как ярлык и город как категория. но это решение работает не так, как ожидалось. – hrishi

ответ

0

Привет, я решил это, используя следующий код

потребительная стоимость и убывание в JSon ответа вместо метки и категории

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