2010-09-13 23 views
0

我想我錯過了一些簡單的東西,但我只是沒有看到它。我有一個ASP.NET MVC應用程序,它基於另一個下拉列表的值來動態構建下拉列表。下拉列表正在正確填充,但是當表單發回時,由於某種原因,組合的值不會回發。爲什麼我的jQuery生成的下拉菜單不回發選定的值?

 $(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(); %> 

我仔細檢查了通過顯示$( 「#清單」)生成的標記HTML(),它看起來OK。我也檢查過,確保下拉列表包含在表單中,並且此下拉列表中沒有任何其他未終止的字符串可能會干擾它。我可以檢查動態構建的下拉列表的值,並且值設置正確。我看過的是通過Fiddler和Firebug發佈,並且這個字段丟失(所以它不是MVC過濾它)。

我錯過了什麼?

回答

1

<form>提交時被收錄,你的元素都需要一個name attribute,像這樣:

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

衛生署!我完全沒有看到 - 肯定有眼罩。非常感謝。 – MikeG 2010-09-13 20:14:22

相關問題