2012-02-28 75 views
9

我試圖通過jQuery的$ .post方法更改數據源屬性。起初,我有:使用Bootstrap的typeahead javascript插件無法更新Bootstrap的typeahead數據源

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

然後,比方說,一個按鈕被點擊並嘗試更新數據源:

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

RESP賬戶XHR結果返回數組是這樣的:

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

我發現這不能可靠地用響應中構建的新數組更新數據源。

有誰知道這個問題可能是什麼?

這似乎不捕獲選定的值。有誰知道如何使用帶Bootstrap的typeahead獲得選定的值?

+0

我認爲你沒有收到太多答覆,因爲我們沒有處理物理錯誤。你可以發佈XHR結果嗎?參數?也許resp值會返回到不可接受的數組中。你是不是引用int值,並引用varchar值?這些東西。這可能會對您的情況更有幫助。 – Ohgodwhy 2012-02-28 07:36:28

+0

我添加了一個XHR看起來像 – 2012-02-28 22:06:13

+0

的示例您可以使用此自定義typeahead插件,它允許ajax數據加載和自定義文本呈現:https://gist.github.com/3287063 – user1307794 2012-08-10 08:08:13

回答

31

我終於想出瞭如何做到這一點。這是outlined on github here

訪問typeahead輸入的數據屬性並直接修改源數組。例如:

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

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

如果您的問題,您應該接受此答案解決了。 – 2012-03-16 02:23:28

+0

爲什麼在'autocomplete.data('typeahead')之後不執行語句。source = newSource;' – Vikram 2014-01-29 06:29:14

相關問題