Ich weiß, das früher gesagt wurde, aber jQuery Autocomplete wird genau das tun, was Sie brauchen. Sie sollten die Dokumente überprüfen, da die Autovervollständigung sehr anpassbar ist. Wenn Sie mit Javascript vertraut sind, dann sollten Sie in der Lage sein, dies auszuarbeiten. Wenn nicht, kann ich Ihnen ein paar Hinweise geben, wie ich es schon einmal getan habe, aber Vorsicht, ich bin auch nicht sehr versiert in Javascript.
Ich denke, das erste, was Sie tun sollten, ist nur ein einfaches Autocomplete-Textfeld auf Ihrer Seite arbeiten, und dann können Sie es von dort anpassen.
Das Autocomplete-Widget akzeptiert JSON-Daten als 'source:' - Option. Daher sollten Sie Ihre App so einrichten, dass die 20 Top-Level-Kategorien und Unterkategorien im JSON-Format erstellt werden.
Die nächste Sache zu wissen ist, dass, wenn der Benutzer in Ihr Textfeld eingibt, das Autocomplete-Widget die eingegebenen Werte in einem Parameter namens "term" senden wird.
Also lassen Sie uns sagen, dass Sie zunächst Ihre Website Set-up, um die JSON-Daten von einer URL wie folgt zu liefern: Quelle
/categories.json
Dann wird Ihr Autocomplete: ': /categories.json source' Option wäre.
Wenn ein Benutzer in das Textfeld ein, wie ‚erste Cata ...‘ der Autocomplete-Widget den Wert im ‚Begriff‘ Parameter wie folgt zu senden beginnen:
/categories.json?term=first-cata
Dieser Wille JSON-Daten zurück an das Widget zurückgeben, das durch alles gefiltert wurde, das mit 'first-cata' übereinstimmt. Dies wird als Autocomplete-Vorschlag angezeigt.
Ich bin mir nicht sicher, was Sie programmieren, aber Sie können angeben, wie der Parameter 'term' eine Übereinstimmung findet. So können Sie dies anpassen, so dass der Begriff eine Übereinstimmung in der Mitte eines Wortes findet, wenn Sie möchten. Beispiel: Wenn der Benutzer 'oder' eingibt, kann der Code eine Übereinstimmung mit 'sp oder ts' herstellen.
Zuletzt haben Sie einen Kommentar gemacht, dass Sie in der Lage sein möchten, einen Kategorienamen auszuwählen, aber das Autocomplete-Widget die Kategorie-ID nicht den Namen übermitteln.
Dies kann leicht mit einem versteckten Feld durchgeführt werden. Dies wird in den jQuery-Autocomplete-Dokumenten angezeigt.
Wenn ein Benutzer eine Kategorie auswählt, sollte Ihr JavaScript ein verstecktes Feld mit der ID aktualisieren.
Ich weiß, dass diese Antwort nicht sehr detailliert ist, aber das liegt hauptsächlich daran, dass ich nicht sicher bin, was Sie programmieren, aber das obige sollte Sie in die richtige Richtung weisen. Es ist wichtig zu wissen, dass Sie mit diesem Widget praktisch alle gewünschten Anpassungen vornehmen können, wenn Sie bereit sind, die Zeit dafür zu nutzen.
Dies sind die breiten Striche, aber Sie können look here für einige Notizen, die ich gemacht, wenn ich etwas ähnliches wie Sie in einer Rails-App implementiert haben.
Hoffe das half.
Das ist genau, warum ich Stackoverflow liebe. DANKE! – palmic
@Lance Mai, hai Ich bin auch auf der Suche nach dem gleichen was Sie vorgeschlagen haben. Aber ich möchte das mit Ajax Auto Completion machen. Anstelle von statischer Autovervollständigung. Auf der Suche nach einer Lösung ... – vissu
Wenn ich Sie nicht missverstehe, Vissu, möchten Sie einfach, dass diese Liste von einem entfernten Ort zurückgegeben wird, anstatt eine fest codierte Reihe von Optionen zu sein. Wenn das stimmt, gibt es ein Remote-Beispiel auf derselben Seite (anderer Anker, aber immer noch dieselbe Demo), die http://jqueryui.com/demos/autocomplete/#remote helfen kann. Wenn Sie das nicht gemeint haben, lassen Sie es mich bitte wissen. Vielen Dank. – Lance