jQuery UI Autocomplete-Widget-Suchkonfiguration
Ich bin auf der Suche in die Verwendung der jQuery UI autocomplete widget zu implementieren user-Suche nach ersten oder letzten Namen. Wie es aussieht, standardmäßig autocomplete sucht Worte, durch Zeichen, Reihenfolge egal sein vorkommen in einem Wort. Also, wenn Sie Daten, wie: javascript, asp, haskell
und geben Sie in 'as'
erhalten Sie alle drei. Ich möchte, dass es nur Spiel Anfang des Wortes. Also in obigen Beispiel bekommt man nur 'asp'
. Gibt es eine Möglichkeit, konfigurieren Sie die autocomplete-widget, das zu tun?
Letztlich wäre es sogar besser, match-Beginn des ersten oder letzten Namen wie es ist in Gmail.
Hinweis: ich versuche, herauszufinden, einen Weg, dies zu tun mit dem jQuery UI-widget-spezifisch. Da bin ich schon mit jQuery UI in meinem Projekt, ich Plane, bleiben Sie dabei und versuchen Sie nicht, hinzufügen von zusätzlichen Bibliotheken, die zu meiner web-Anwendung.
InformationsquelleAutor der Frage dev.e.loper | 2010-03-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
In jQuery UI-v1.8rc3, das autocomplete-widget akzeptiert eine Quelle option kann entweder ein string, ein array oder eine callback-Funktion. Wenn es ein string, autocomplete funktioniert ein GET auf die URL zu erhalten Optionen/Anregungen. Wenn ein array autocomplete funktioniert die Suche, wie gesagt, für die Gegenwart des typisierten chars in jeder position in Bezug auf das array. Die Letzte Variante ist, was Sie wollen - die callback-Funktion.
Aus der AutoVervollständigen-Dokumentation:
Beispiel-code:
Ein paar wichtige Punkte:
$.ui.autocomplete.escapeRegex(req.term);
Dass entweicht den Suchbegriffso, dass jeder regex-aussagekräftige Begriffe im text vom Benutzer eingegeben werden behandelt, als plain-text. Zum Beispiel der Punkt (.) von Bedeutung ist regex. Ich erfuhr von diesem escapeRegex Funktion durch das Lesen der autocomplete-source-code.
new Regexp()
. Es gibt eine regexp Beginn mit ^ (Zirkumflex), was bedeutet, es passen nur, wenn die eingegebenen Zeichen erscheinen am Anfang der Laufzeit im array, was ist das, was Sie wollte. Es nutzt auch die "ich" - option, was bedeutet, ein groß-und Kleinschreibung.$.grep()
Dienstprogramm ruft einfach die bereitgestellte Funktion auf jeden Begriff in die bereitgestellten Arrays. Die Funktion in diesem Fall nutzt einfach die regexp um zu sehen, ob der Begriff in der Reihe ist ein Spiel für das, was eingegeben wurde.arbeiten demo: http://jsbin.com/ezifi
sieht es aus:
Nur eine Anmerkung: ich finde die Dokumentation auf AutoVervollständigen ziemlich unreif an dieser Stelle. Ich finde nicht Beispiele, die dies Taten, und ich konnte Sie nicht finden, working doc auf das .css-Dateien notwendig waren, oder die .css-Klassen verwendet werden würde. Das alles erfuhr ich von der überprüfung des Codes.
Siehe auch wie kann ich custom-format das AutoVervollständigen-plug-in die Ergebnisse?
InformationsquelleAutor der Antwort Cheeso
Ich die AutoVervollständigen von devbridge. http://www.devbridge.com/projects/autocomplete/jquery/
Passt es am Anfang Zeichen, nur.
alt-text http://i46.tinypic.com/2ihq7pd.jpg
Soweit matching basierend auf vor-oder Nachnamen, Sie würde lediglich zur Lieferung einer lookup-Liste mit den vor-und Nachnamen.
Beispiel:
Den
lookup
option, die Sie weitergeben, initialisieren Sie die AutoVervollständigen-Steuerelement kann eine Liste oder ein Objekt. Der oben zeigte, eine einfache Liste. Wenn Sie möchten, dass einige Daten angehängt, um die Vorschläge, get zurückgegeben wird, dann machen dielookup
option ein Objekt, wie diesem:InformationsquelleAutor der Antwort Cheeso
thx cheeso für intrducing jsbin.com,
erweiterte ich den code zur Unterstützung, vor - und Nachname passt auch.
demo: http://jsbin.com/ufimu3/
geben Sie 'ein' oder 're'
InformationsquelleAutor der Antwort Phil Rykoff
Wenn Sie wollen zu suchen am Anfang eines jeden Wortes in der Zeichenfolge, eine elegantere Lösung Gefolgsmann ist zu nehmen cheeso ist aber nur benutzen Sie die regexp-Wort-Grenze Sonderzeichen:
Beispiel: http://jsbin.com/utojoh/2 (versuchen Sie eine Suche für 'bl')
InformationsquelleAutor der Antwort Nader
Gibt es ein weiteres jQuery-autocomplete-plug-in , Optional Recherchen erst am Anfang von jedem Artikel (die option ist
matchContains=false
, ich denke, das ist auch voreingestellt).Angesichts des Fehlens einer solchen option in der jQuery-UI-plugin, ich vermute, Sie müssen entweder verwenden Sie ein anderes plugin, oder schreiben die, die Sie derzeit verwenden.
InformationsquelleAutor der Antwort Paul D. Waite
Wo bekommen Sie die Daten zum Auffüllen der autocomplete? Ist es aus einer Datenbank? Wenn ja, können Sie tun, was Sie wollen in Ihrer Abfrage, und nur Ergebnisse zurück, die den Anfang eines jeden Wortes (first/last name)
InformationsquelleAutor der Antwort Mark