2013-10-12 66 views
0

我有一個動態生成的下拉選擇菜單。它使用html選擇語法生成,然後使用.after方法插入。然後我使用ajax調用來獲取選擇器的元素並像這樣填充它。動態生成下拉選擇器的設置值

$($.parseJSON(msg)).map(function() { 
     return $('<option>').val(this.id).text(this.name); 
    }).appendTo('#item'); 

現在這段代碼填充'item'下拉菜單後,我必須將它設置爲某個元素,比如第五個元素。所以我試圖這樣做。

$('#item').val('5'); 

我甚至試圖明確識別物品。因爲它在html表中,就像這樣。

$("#itemTable > tfoot > tr.items").find("td:eq(0) [name='item']").val('5'); 

上述代碼在其他情況下工作正常,當我有一個下拉手動創建。所以我覺得上述兩種嘗試都沒有真正識別'item'下拉組件。那麼還有其他方法可以嘗試嗎?

+0

順便說一句我試圖看到上面的代碼後「項目」的值,並將其返回5.但它不是在UI顯示。 – altsyset

回答

0

jquery documentations爲map()說:「如果你想處理一個普通的數組或對象,請改用jQuery.map()。」

您的下拉列表不會填充(檢查控制檯是否有錯誤),因此將任何值設置爲#item都不起作用。

試試這個:

var options = $.map($.parseJSON(msg), function (n, i) { 
    return $('<option>').val(n.id).text(n.name); 
}); 
$("#item").append(options); 

有了這個代碼,drowdown將會逐漸然後$("#item").val("5")會工作。

的jsfiddle:http://jsfiddle.net/6Us9N/

+0

實際上填充我的下拉菜單很好。在人口問題之後,我正在努力設定具體的價值。但我很樂意嘗試你的建議。 – altsyset

+0

檢查jsfiddle http://jsfiddle.net/6Us9N/ –

+0

可靠的人!當下拉菜單被創建爲手動時,它可以工作。我甚至反覆使用過它。但我的下拉是在飛行中創建的。我會嘗試創建一個jsfiddle ...等待 – altsyset

相關問題