为什么我的jQuery生成的下拉列表没有回发所选的值?

时间:2010-09-13 20:08:45

标签: jquery

我想我错过了一些简单的东西,但我只是没有看到它。我有一个ASP.NET MVC应用程序,它根据另一个下拉列表的值动态构建下拉列表。下拉列表正在正确填充,但是当表单回发时,组合的值由于某种原因未被回发。

        $(document).ready(function () {
            PopulateList();
            $("#List").change(GetSelectedItem);
        });

        function PopulateList() {
            var timeSlot = $("#Timeslot").val();
            var options = [];
            var list = 0;
            $.getJSON("GetList/" + timeSlot, "", function (data, textStatus) {
            for (var i = 0; i < data.length; i++) {
                options.push('<option value="',
                data[i].ID, '">',
                data[i].Name, '</option>');
            }
            $("#List").html(options.join(''));
            if (data.length > 0)
                list = data[0].ID;

            GetSelectedItem(timeSlot, list);
        });

在视图中我还有以下内容:

<% Html.BeginForm(); %>
<select id="List" style="width:120px"></select>
(lots of HTML removed)
<% Html.EndForm(); %>

我已经仔细检查了显示$(“#List”)。html()生成的标记,看起来没问题。我还检查过以确保下拉列表中包含下拉列表,并且此下拉列表周围没有任何其他未终止的字符串可能会干扰它。我可以检查动态构建的下拉列表的值,并正确设置值。我看过是通过Fiddler和Firebug发回的,这个字段丢失了(所以不是MVC过滤它。)

我错过了什么?

1 个答案:

答案 0 :(得分:1)

要在提交<form>时加入,您的元素需要name attribute,如下所示:

<select id="List" name="List" style="width:120px"></select>