用jquery填充/构建一个下拉列表

时间:2011-05-05 03:49:40

标签: jquery asp.net-mvc-3

我需要在我的MVC3应用程序中使用下拉列表进行过滤。我想尽可能多地处理jquery,因为我不需要这个下拉除了过滤之外的任何东西。我知道基于列表的过滤是另一个步骤,但我现在只关注下拉。

到目前为止,我使用MVC构建了一个空列表,然后尝试在加载时使用jquery填充它。

这是我的代码。

<script src="http://code.jquery.com/jquery-1.5.1.min.js" type="text/javascript"/>       
<script type="text/javascript">
$(function () {
    var myOptions =
    {
        val1: '12 hours',
        val2: '24 hours'
    };
    $.each(myOptions, function (val, text) {
        $('#timeSelect').append( new Option(text,val) );
        });
});

</script>

<div id="timeSelect">
    @Html.DropDownListFor(
    x => x.FilterTimeList, 
    Enumerable.Empty<SelectListItem>(),
    "-- select Time --"
    )
</div>

我的ViewModel中有一个名为FilterTimeList的下拉列表,但我想废除这个,因为后端不需要这些信息。

使用上面的代码,列表中有选择Time选项,但是没有选项根据jquery添加到列表中。

为了澄清,我有一个基于数据库值填充的表。我计划根据从下拉列表中选择的选项来过滤该表。

1 个答案:

答案 0 :(得分:1)

你应该拥有这一行,而不是现有的那一行:

$('#timeSelect select').append( new Option(text,val) );

更多 jquery样式方法,结果相同:

$('<option />').val(val).text(text).appendTo('#timeSelect select');