2017-01-03 4 views
0

Ich benutze Kategorie weise jquery Autocomplete https://jqueryui.com/autocomplete/#categories, um Liste in Dropdown anzuzeigen. Ich übergebe Städtenamen als Label und Ländername als Kategorie. Suche nach Markenname funktioniert gut, aber ich möchte Option für die Suche nach Land geben. Wenn der Benutzer den Ländernamen eingibt, sollten alle Städte des Landes in der Dropdown-Liste angezeigt werden.Suche nach Kategorie in jquery auto complete

Also, wenn Benutzertyp australia dann muss ich alle lebels mit Kategorie Australien finden und zeigen sie in Drop-Down-

I Bild angehängt haben, die aktuelle Funktionalität zeigt

enter image description here

Javascript-Code ist

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

Klingen wie ein schwieriges Problem .. Was Sie so weit, dass funktioniert nicht versucht haben? (Ich weiß, dass Sie nicht nur fordern, dass jemand eine Lösung für Sie schreibt, ohne es zuerst selbst zu versuchen) – mike510a

+0

Ich denke, Sie sollten dies auf dem Server tun. Der Client kümmert sich überhaupt nicht um die Filterung (in Ihrem Fall) –

+0

@ mike510a Ich versuchte, wie wenn Benutzer etwas eingeben und wenn es nicht mit irgendeinem Stadtnamen übereinstimmt, aber mit dem Landnamen übereinstimmt, dann Land als Etikett und Stadt wählen Kategorie. aber diese Lösung funktioniert nicht wie erwartet. – hrishi

Antwort

0

Hallo ich löste es mit dem folgenden Code

Gebrauchswert und ab in json Reaktion statt Etikett und Kategorie

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