2012-07-02 63 views
1

我想獲得JQuery Token Input預填充。JQuery:參數:硬編碼的字符串vs ajax檢索到的字符串

var assignUserJson=$('#assignUserJson').val(); 
console.log(assignUserJson); //[{"id":"1","name":"Andrew"},{"id":"3","name":"John"}] 

這裏是我認爲它應該在工作的兩種方式之間的差異:

$('#assignTask').tokenInput('/users/suggest', {prePopulate: assignUserJson}); // doesn't work 

而且這個工程:

$('#assignTask').tokenInput('/users/suggest', {prePopulate: [{"id":"1","name":"Andrew"},{"id":"3","name":"John"}]}); // works 

這是爲什麼?我不應該能夠從隱藏的輸入字段獲取值並將其傳遞給tokenInput函數嗎?

+1

'assignUserJohn'存儲該json數據的字符串表示形式。你需要有實際的json對象而不是它的字符串 – Shades88

回答

3

在第一種方法中,assignUserJson是一個字符串,而在第二種方法中,它是一個數組對象。客觀化的第一個應該工作:

$('#assignTask').tokenInput('/users/suggest', {prePopulate: JSON.parse(assignUserJson)}); 
+1

擊敗我38秒:) – Utkanos

2

隨着你傳遞一個JSON字符串,而不是你在第二有形JS對象的第一個方法。

您首先需要解析JSON。這可以在ECMA5本地完成,或者對於較老的瀏覽器,可以通過第三方支持完成。

$('#assignTask').tokenInput('/users/suggest', {prePopulate: JSON.parse(assignUserJson)}); // doesn't work