2014-03-25 19 views
0

我想寫一個功能的用戶後更改我的options_for_select標籤(用於用戶的供應商)創建一個新的供應商:從數據更改options_for_select從AJAX調用返回

$("#newVendor-from-inventory-form").on("ajax:success", function(xhr, data, status) { 
    var newOptions = data; 
    var $el = $("#inventory_vendor_id"); 
    $el.empty(); // remove old options 
    _.each(newOptions, function(key, value) { 
    $el.append($("<option></option>").attr("value", value).text(key)); 
    }); 
}); 

這裏是什麼是一個例子存儲在newOptionsdata

[["Test",1],["New Vendor",18],["2",19],["1",20],["asdf",21],["fd",22],["adf",23]] 

現在的問題是,當我通過newOptions迭代,它是通過迭代newOptions就好像它是一個字符串。所以如果我console.log(key),我會得到每個人的個性。我希望我的密鑰成爲第一個值(例如「測試」或「新供應商」)並返回該ID(例如1或18)。

如何正確更改我的options_for_select標籤的選項?我認爲可能有一個更簡單的方法。

回答

0

我想通了。在導軌形式中,我只需通過html: {:'data-type' => 'json'}就可以將數據類型解釋爲json而不是字符串

0

我不擅長的jQuery,但這裏是我的解決方案

for(var i = 0; i < newOptions.length; i++) { 
    $("#inventory_vendor_id").append($('<option value="'+ newOptions[i][0] +'">'+ newOptions[i][1] +'</option>')); 
}