2011-09-27 72 views
0

我已經完成了一堆搜索,但似乎無法獲取任何地方。將jquery自動完成動態文本框綁定到json

我有一些JSON看起來像

[{"IngredientId":1,"IngredientName":"Butter","CategoryID":1},{"IngredientId":2,"IngredientName":"Sugar","CategoryID":1},{"IngredientId":3,"IngredientName":"Water","CategoryID":1},{"IngredientId":4,"IngredientName":"Salt","CategoryID":1}] 

我試着做兩件事情。 1.以某種方式存儲來自所選自動完成文本框的IngredientId並且是最重要的。將自動完成綁定到上面的json。

這是我的一個綁定的值跛腳嘗試

.autocomplete({ 
     source: ingredients, 
     select: function (item) { 
      console.log(item.IngredientId); 
      return item.IngredientName; 
     } 

有人可以幫忙用正確的方式應該是我結合自動完成?

謝謝

回答

1

source屬性需要普通數組或對象的陣列(或字符串)。與一系列對象一起應該是{ 'value': 'some_val', 'label': 'some_label' }類型。

如果您無法控制該配料陣列,則應該將其映射爲自動完成。

var ingredients_ac = $.map( 
    ingredients, 
    function(obj) { 
     return { value: obj.IngredientId, label: obj.IngredientName }; 
    }); 

然後使用新的陣列自動完成

.autocomplete({ 
     ... 
     source: ingredients_ac, 
     ... 
     } 
); 
+0

感謝Zlatev! –