2012-02-28 7 views
9

Przy użyciu wtyczki javascript typu Bootstrap, próbuję zmienić atrybut źródła danych za pomocą metody $ .post jQuery. Początkowo mam:Problemy z aktualizacją źródła danych Bootstrap za pomocą odpowiedzi po wpisie

<input type="text" data-provide="typeahead" data-source="["Option 1","Option 2","Option 3"]"> 

Następnie, powiedzmy kliknięciu przycisku i próbuje zaktualizować dane source:

$('button').on('click',function(){ 
    $.post('update.php',function(resp){ 
      $('input').attr('data-source',resp); 
    }); 
    }); 

Wynik resp XHR zwraca tablicę tak:

["One Option","Two Option","Three Option"] 

Zauważyłem, że nie jest to niezawodna aktualizacja źródła danych z nową tablicą skonstruowaną w odpowiedzi.

Czy ktoś wie, jaki może być problem?

To zdjęcie nie wyświetla uchwyconej wartości. Czy ktoś wie, jak uzyskać wybraną wartość za pomocą polecenia typeahead z Bootstrap?

+0

Myślę, że nie otrzymujesz bardzo wielu odpowiedzi, ponieważ nie mamy do czynienia z fizycznym błędem. Czy możesz opublikować wyniki XHR? parametry? być może wartość resp powraca w tablicy, która nie jest akceptowalna. Czy nie cytujesz wartości int i cytujesz wartości varchar? tego rodzaju rzeczy. To może być bardziej pomocne w twojej sprawie. – Ohgodwhy

+0

Dodałem przykład tego, jak wygląda XHR. –

+0

Możesz użyć tej niestandardowej wtyczki typu aa, która pozwala na ładowanie danych ajaxowych i renderowanie tekstu niestandardowego: https://gist.github.com/3287063 – user1307794

Odpowiedz

31

W końcu zorientowałem się, jak to zrobić. Jest to outlined on github here.

Uzyskaj dostęp do atrybutu danych wejściowych dla wejścia i zmodyfikuj bezpośrednio tablicę źródłową. E.g:

var autocomplete = $('input').typeahead(); 

//where newSource is your own array 
autocomplete.data('typeahead').source = newSource; 
+2

Powinieneś zaakceptować tę odpowiedź, jeśli masz problem jest rozwiązane. –

+0

Dlaczego instrukcje nie są wykonywane po 'autocomplete.data ('typeahead'). Source = newSource;' – Vikram

Powiązane problemy