2016-05-19 52 views
-1

我的視圖中有一個可變數量的下拉列表。我試圖根據viewmodel屬性預先填充它們的值。我回顧了本網站和其他網站上的類似問題,並且大多數建議都表示使用.prop或.val來設置該值,但在嘗試這樣做時出現錯誤....is not a function。基本上我遍歷我dropdownlists並嘗試設置每到eachQuantifier[i]。所有幫助值的值表示讚賞,我的代碼如下:mvc通過jquery設置dropdownlist的值

$(document).on("ready", function() { 
    var stringifiedQuantifiers = "@Model.StringifiedSubIngredientQuantifiers"; 
    var eachQuantifier = stringifiedQuantifiers.split(";"); 
    var dropdownlists = $(".dropdownlist"); 
    for (var i = 0; dropdownlists.length; i++) { 
     var dropdown = dropdownlists[i]; 
     dropdown.val(eachQuantifier[i]); 
    } 

    }); 

和dropdownlists自己被構建爲:

@Html.DropDownListFor(m => m.SelectedRecipeUnit, Model.BaseUnitOptions, "Select Unit", new { @class = "form-control dropdownlist", @data_key = @Model.IngredientIdNamePairs.ElementAt(i).Key }) 
+0

'$(下拉).VAL(....' –

+0

@Stephen這導致頁面凍結(無限期地裝載)負載 – Greg

+0

然後你有其他問題(不是最不重要的是你不正確地生成你的控制 - 你需要一個'for'循環 - 但那不是相關的) –

回答

0

當您遍歷dropdownlists中的元素時,您正在訪問找到的DOM元素。

您需要使用訪問的jQuery對象:

$(dropdown).val(...) 
+0

這導致頁面在加載時被凍結(無限加載) – Greg

+0

有多少個元素被發現, .dropdownlist'?你有沒有嘗試用附加的調試器來遍歷那段代碼?看起來你的代碼還存在其他一些問題。 – MarcoLaser