2016-07-04 7 views
2

Ich verwende jQuery UI autocomplete, um Autocomplete-Widget in meiner Anwendung zu implementieren. Was ich versuche zu tun ist, zu laden Änderungen in seiner Quelle leben sogar im offenen Zustand (autocomplete widget in erweitertem Zustand).Laden Sie geänderte Daten in der automatischen Vervollständigung von jQuery UI in geöffnetem Zustand

Zum Beispiel:

dummyArray = ['foo', 'bar', 'baz', 'Bazz']; 

$('#target').autocomplete({ 
    source: dummyArray; 
}); 

Nach wenigen Sekunden geändert:

dummyArray = ['loading..']; 
$('#target').autocomplete('option', 'source', dummyArray); 

und nach wenigen Mini-Sekunden soll es sein:

dummyArray = ['something', 'goes', 'here']; 
$('#target').autocomplete('option', 'source', dummyArray); 

Es funktioniert gut, wenn ich Autocomplete zusammenfassen/schließen und erweitern/öffnen Sie es erneut. Aber nicht im offenen Zustand, deshalb zeigt es irgendwann mal Text/Daten, die nicht mehr relevant sind.

+0

Überprüfung der Funktion, wo die Datenquelle .. dort geändert, rufen Sie das 'autocomplete' Plugin wieder .... –

Antwort

2

Dies ist, was die search Methode ist für: https://api.jqueryui.com/autocomplete/#method-search

dummyArray = ['something', 'goes', 'here']; 
$('#target').autocomplete('option', 'source', dummyArray); 
$('#target').autocomplete('search'); 

Hier ist ein Beispiel Geige: https://jsfiddle.net/2eL26jL7/1/

+0

Gibt es eine Methode, die den Status des Autocomplete-Widgets (offen oder geschlossen) zurückgibt? – Tarun

+1

Nicht auf dem Widget selbst. Sie können '.autocomplete (" widget ")' verwenden, um das zugrunde liegende Menüelement zu erhalten, und dann den Standardmechanismus verwenden, um zu überprüfen, ob es sichtbar ist, z. '$ ('# target') .autocomplete ('widget'). is (': visible')' – blgt