2011-10-10 49 views
0

使用JSON我有一些麻煩,同時做兩個下拉列表:未定義的對象,而填充下拉列表中MVC2

  • 地區:所有地區
  • 市:市屬於區域的選定值

一切都很好,直到市從JSon讀取項目。 下拉城的所有物品都是未定義

這裏是我的代碼

$(document).ready(function() { 
     $('#AreaList').change(function() { 
      $.ajaxSetup({ cache: false }); 
      var selectedItem = $(this).val(); 
      if (selectedItem == "" || selectedItem == 0) { 
       //Do nothing 
      } else { 
       $.ajax({ 
        url: '<%=Url.Content("~/") %>Administration/GetDropDownCity', 
        data: { item: $("#AreaList> option:selected").attr("value") }, 
        dataType: 'json', 
        traditional: true, 
        type: 'POST', 
        success: function (data) { 
         var items = ""; 
       $.each(data, function (i, data) { 
        items += "<option value='" + data.value + "'>" + data.description + "</option>"; 
       }); 
       $("#CityList").html(items); 
       $("#CityList").removeAttr('disabled'); 
        } 
       }); 
      } 
     }); 
    }); 

的JSON是存在的,我檢查了Firebug的,並在下面列出

"[{\"value\":\"107\",\"description\":\"KOTA DEPOK\"},{\"value\":\"141\",\"description\":\"KOTA JAKARTA SELATAN\"}]" 

任何想法來解決這個問題? 反正,對不起我的語言:)

編輯: 問題是sovled .. 我用jQuery.parseJSON()閱讀JSON

回答

0

我不敢肯定,但我認爲一個變量在這裏衝突

$.each(data, function (i, data) { 
        items += "<option value='" + data.value + "'>" + data.description + "</option>"; 
       }); 

在枚舉變化dataval例如像

$.each(data, function (i, val) { 
        items += "<option value='" + val.value + "'>" + val.description + "</option>"; 
       }); 

編輯:也儘量提醒data[0].valuedata[0].description確保JSON字符串被解析正確的客戶端。否則,您可能需要在返回的數據上撥打$.parseJsone
編輯2:一兩件事你可以嘗試是使用for循環

for(i=0;i<data.length;i++) 
{ 
    items += "<option value='" + data[i].value + "'>" + data[i].description + "</option>"; 
} 
+0

我會用警報(data.value),以確保數據可以被看作。結果是未定義相同的下拉列表 – vantian

+0

你試着改變變量名稱從'數據'到'val'或別的什麼? –

+0

我做了,仍然顯示未定義:( – vantian