我在MVC工作,我必须将下拉值绑定到javascript中的数组。我该怎么做?
下拉列表 -
Html.DropDownListFor(m => m.MyActivityRequest.ToMonth, Model.MonthNames, new { @id = "monthToSelect" })
Javascript功能:
$(document).ready(function(){
$("#yearToSelect").change(function(){
var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
var date = new Date();
var monthVar = date.getMonth();
var yearVar = date.getFullYear();
if ($(this).val() < yearVar ){
$("#monthToSelect").find('option').remove();
for( i = 0; i < 12; i++ ){
$("#monthToSelect").append($("<option>",{
value: months[i],
text: months[i]
}));
};
}
你可以看到阵列 - &#39;月份&#39;到目前为止是硬编码的。我想动态地将下拉值绑定到此数组。
答案 0 :(得分:1)
在您的代码中,适当地放置以下代码。
更好的方法:
var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
var option = '';
for (i=0;i<months.length;i++){
option += '<option value="'+ months [i] + '">' + months [i] + '</option>';
}
$('#monthToSelect').append(option);
来自here。
答案 1 :(得分:0)
我认为你必须从控制器传递月份列表。因此,在javascript中,您可以进行ajax调用并返回相同的月份列表。您可以使用此列表而不是数组 - &#39;月&#39;在你的javascript函数中。