2016-04-26 5 views
0

Ich habe ein Eingabefeld, um nach Produkten zu suchen. Es verwendet typeahead zum Abrufen und Anzeigen der zurückgegebenen Daten.Typeahead: zeige ALLE Ergebnisse anstelle der exakten Zeichenkettenübereinstimmungen

Ein Problem tritt auf, wenn die Ajax-Antwort Ergebnisse enthält, die nicht genau mit meinem Eingabewert übereinstimmen. Zum Beispiel:

input query = "daffalgane" 

JSON data result is = 
{products: 
     { id:100, label: "dafalgan 500" }, 
     { id:101, label: "dafalgan 750mg" }, 
     { id:500, label: "daffalgane 600 mg" }, 
} 

typeahead zeigt nur das eine mit ID: 500, da es einen genauen (Teil des) string Match hat.

Warum werden die anderen Ergebnisse nicht angezeigt? Es würde für mich mehr Sinn ergeben, dass Typehead nur den zurückgegebenen Datensatz anzeigen würde.

Als Referenz ist das die Konfiguration für das Eingabefeld verwendet:

$('#suggestions').typeahead({ 
    minLength: 1, 
    maxItem: 10, 
    hint: false, 
    highlight: false, 
    emptyTemplate: 'NO RESULTS', 
    source:{ 
     products: { 
      display: "label", 
      href: baseurl+'{{slug}}', 
      url: [{ 
       type: "POST", 
       url: baseurl+'/suggest', 
       data: { 
        for: "{{query}}".trim() 
       }, 
      }, "data.products"], 

     }, 
    }}); 
+0

Was ist der Wert in 'query'? – whipdancer

+0

@whipdancer Der Wert in der Abfrage ist "Daffalgane". Scheinbar führt typeahead basierend auf dem Abfragewert eine eigene Filterung des Quelldatensatzes aus. Da ich bereits gefilterte Daten habe, muss ich nur die gesamte Quelle anzeigen, ohne die zusätzliche Filterung durch typeahead. – nexana

+1

Die meisten typeahes (es scheint) wird eine genaue Übereinstimmung und dann finden Sie alles, was ähnlich ist, basierend auf dem Text, den Sie eingeben. Da Sie daff eingegeben haben, stimmen die anderen nicht überein. Je mehr Zeichen Sie eingeben, desto expliziter wird Ihre Übereinstimmung. Abhängig davon, welche Art von Text Sie verwenden, können Sie möglicherweise Ihre eigene Suche durchführen. – whipdancer

Antwort

Verwandte Themen