twitter bootstrap typeahead ajax Beispiel
Ich versuche zu finden, ein Beispiel für die twitter bootstrap typeahead element, das einen ajax-Aufruf zu füllen es aus.
Ich habe einen bestehenden jquery-autocomplete Beispiel definiert die ajax-url auf und wie verarbeiten Sie die Antwort
<script type="text/javascript">
//<![CDATA[
$(document).ready(function() {
var options = { minChars:3, max:20 };
$("#runnerquery").autocomplete('./index/runnerfilter/format/html',options).result(
function(event, data, formatted)
{
window.location = "./runner/index/id/"+data[1];
}
);
..
Was muss ich ändern, um eine Umwandlung in das typeahead Beispiel?
<script type="text/javascript">
//<![CDATA[
$(document).ready(function() {
var options = { source:'/index/runnerfilter/format/html', items:5 };
$("#runnerquery").typeahead(options).result(
function(event, data, formatted)
{
window.location = "./runner/index/id/"+data[1];
}
);
..
Werde ich warten, für die 'Hinzufügen von remote-Quellen unterstützen für die typeahead' Problem zu lösen.
Kommentar zu dem Problem
Um genauer zu sein ich Frage mich, wie die AutoVervollständigen-Optionen, und führen handling-Funktion anzeigen, um die textahead Optionen? Gibt es ein set von vordefinierten textalert Ergebnis-handling-Funktionen überschrieben werden können, oder die Methode mit dem Namen geerbt von der zugrunde liegenden jquery-api.
Konnten Sie mark Stijn Van Bael Antwort als die richtige jetzt? bogert Antwort funktioniert nur für die out-of-date Versionen von Bootstrap.
InformationsquelleAutor der Frage emeraldjava | 2012-02-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Edit: typeahead ist nicht mehr gebündelt in Bootstrap 3. Check-out:
Als der Bootstrap 2.1.0 bis zu 2.3.2, können Sie dies tun:
Konsumieren von JSON-Daten wie diese:
Beachten Sie, dass die JSON-Daten muss der richtige mime-type (application/json) so jQuery erkennt es als JSON.
InformationsquelleAutor der Antwort Stijn Van Bael
Können Sie die BS Typeahead Gabel unterstützt die ajax-Aufrufe.
Dann werden Sie in der Lage zu schreiben:
InformationsquelleAutor der Antwort bogert
Ab Bootstrap 2.1.0:
HTML:
Javascript:
Nun können Sie einen unified-code, indem Sie "json-request" - links in Ihren HTML-code.
InformationsquelleAutor der Antwort Thantifaxath
Alle Antworten beziehen sich auf BootStrap 2 typeahead, die nicht mehr vorhanden ist in BootStrap 3.
Für jemand anderen verwiesen hier auf der Suche nach einem AJAX-Beispiel mit dem neuen post-Bootstrap Twitter typeahead.js, hier ist ein funktionierendes Beispiel. Die syntax ist ein wenig anders:
In diesem Beispiel wird sowohl die synchrone (der Aufruf processSync) und asynchroner Anregung, so würden Sie sehen einige Optionen, die sofort erscheinen, dann andere Hinzugefügt werden. Sie können nur eine oder die andere.
Gibt es viele bindbare events und einige sehr leistungsstarke Optionen, einschließlich arbeiten mit Objekten statt mit strings, in dem Fall würden Sie verwenden Sie Ihre eigenen benutzerdefinierten display Funktion zum Rendern der Elemente als text.
InformationsquelleAutor der Antwort Jonathan Lidbeck
Habe ich ergänzt die original Bootstrap typeahead-plugin mit ajax-Funktionen. Sehr einfach zu bedienen:
Hier ist der github-repo: Ajax-Typeahead
InformationsquelleAutor der Antwort Paul Warelis
Habe ich einige änderungen an der jquery-ui.min.js:
, und fügen Sie folgenden css -
Funktioniert perfekt.
InformationsquelleAutor der Antwort bmoers
Kann man Anrufe tätigen, durch die Verwendung von Bootstrap. Die aktuelle version nicht hat jedem source-update-Probleme
Probleme mit der Aktualisierung Bootstrap - typeahead-Daten-Quelle mit post-Antwort
, d.h. die Quelle der bootstrap-nach dem Update kann wieder geändert.
Bitte siehe unten für ein Beispiel:
InformationsquelleAutor der Antwort neoeahit
Auf die Suche nach einem coffeescript-version der akzeptierten Antwort:
InformationsquelleAutor der Antwort Hendrik
Ging ich durch diesen post und alles nicht wollen, um korrekt zu arbeiten, und schließlich setzte der bits zusammen, die aus ein paar Antworten, damit ich eine 100% funktionsfähige demo und füge Sie hier für die Referenz - paste diese in eine php-Datei und stellen Sie sicher, gehört am richtigen Ort sind.
InformationsquelleAutor der Antwort l0ft13
Ich bin mit dieser Methode
InformationsquelleAutor der Antwort Krava
UPDATE: ich habe meine modifizierten code mittels diese Gabel
auch statt mit $.jeder wechselte ich in $.anzeigen wie vorgeschlagen von Tomislav Markovski
Jedoch bin ich auf einige Probleme, die durch die erste
wie Sie sehen können auf einem neueren post bin ich versucht, herauszufinden, hier
hoffe, das update ist von jeder Hilfe...
InformationsquelleAutor der Antwort mmoscosa
Versuchen dieses wenn Ihr service ist nicht Rückkehr der rechten application/json content-type-header:
InformationsquelleAutor der Antwort Andres
Habe ich nicht ein Beispiel für Sie, noch ich haben eine sehr saubere Lösung, aber lassen Sie mich Ihnen sagen, was ich gefunden habe.
Wenn man sich den javascript code für die TypeAhead sieht es wie folgt aus:
Dieser code verwendet die jQuery - "grep" - Methode übereinstimmen, ein element im Quell-array. Ich wollte nicht sehen, alle Orte, die Sie könnten Haken in einem AJAX-Aufruf, so dass es nicht eine "saubere" Lösung.
Jedoch eine etwas hacky Weise, die Sie tun können, diese zu nutzen, ist die Möglichkeit der grep-Methode funktioniert bei jQuery. Das erste argument von grep ist das Quell-array und das zweite argument ist eine Funktion, die benutzt, um die source-array (Hinweis Bootstrap ruft die "matcher", die Sie bei der Initialisierung). Was Sie tun könnten, ist die Quelle auf einen dummy ein-element-array definieren und die matcher eine Funktion mit AJAX-call. So, laufen wird der AJAX-Aufruf nur einmal (seit Ihr Quell-array nur ein element hat).
Diese Lösung ist nicht nur hacky, aber es wird leiden unter performance-Problemen, da die TypeAhead-code ist entworfen, um zu tun eine Suche auf jeder Taste drücken (AJAX-Aufrufe sollte eigentlich nur passieren, alle paar Tastenanschläge oder nach einer gewissen idle-Zeit). Mein Rat ist, es zu versuchen, aber bleiben Sie entweder zu einer anderen AutoVervollständigen-Bibliothek oder nutzen diese nur für nicht-AJAX-Situationen, wenn Sie auf Probleme stoßen.
InformationsquelleAutor der Antwort Aamer Abbas
bei der Verwendung von ajax, versuchen
$.getJSON()
statt$.get()
wenn Sie Probleme mit der korrekten Anzeige der Ergebnisse.In meinem Fall habe ich nur die ersten Zeichen jedes Ergebnis, wenn ich
$.get()
, obwohl ich verwendetjson_encode()
server-Seite.InformationsquelleAutor der Antwort larsbo
?>
InformationsquelleAutor der Antwort Mohamed Ayed