2012-01-30 2 views
0

JSON 목록으로 드롭 다운 목록을 채우는 데 문제가 있습니다. 여기 내 기능에서 수행하고있는 작업이 있습니다.jsonList를 jsonery 드롭 다운 목록으로 구문 분석하는 중 오류가 발생했습니다.

onPhaseChange1: function(dropdown, row) { 

     var combobox = $(dropdown); 
     comboboxWorkUnit = row.find("select.workUnit"); 
     EmployeeType = $("input[id*='EmployeeType']").val(); 

     comboboxWorkUnit.show(); 
     comboboxWorkUnit.empty(); 

     var jsonList = { 
     [{ "Id": "12345", "WorkUnitId": "SR0001954", "Description": "Test Service Request From Serena", "WorkUnitCategory": "ServiceRequest" }, 
{ "Id": "12355", "WorkUnitId": "WOR001854", "Description": "Test Work Order From Serena", "WorkUnitCategory": "ServiceRequest" }, 
{ "Id": "12365", "WorkUnitId": "DBR001274", "Description": "Test Database Related Service Request From Serena", "WorkUnitCategory": "ServiceRequest"}]} 


$($.parseJSON(jsonList)).map(function() { $('<option>').val(this.Id).text(this.Id).appendTo(comboboxWorkUnit); }); 
    }, 
+1

$ .parseJSON()은 문자열을 필요로합니다. 대신에 객체를 전달하는 것처럼 보입니다. –

답변

1

jsonList는 단지 배열이어야합니다. 그것은 대상 안에있을 필요가 없습니다. 그런 다음 각 배열을 호출하십시오. fiddle : http://jsfiddle.net/brentmn/Jkxe2/

var comboboxWorkUnit = $("select.workUnit"); 

    comboboxWorkUnit.show(); 
    comboboxWorkUnit.empty(); 

    var jsonList = [{ 
     "Id": "12345", 
     "WorkUnitId": "SR0001954", 
     "Description": "Test Service Request From Serena", 
     "WorkUnitCategory": "ServiceRequest"}, 
    { 
     "Id": "12355", 
     "WorkUnitId": "WOR001854", 
     "Description": "Test Work Order From Serena", 
     "WorkUnitCategory": "ServiceRequest"}, 
    { 
     "Id": "12365", 
     "WorkUnitId": "DBR001274", 
     "Description": "Test Database Related Service Request From Serena", 
     "WorkUnitCategory": "ServiceRequest"}]; 


    $(jsonList).each(function() { 
     comboboxWorkUnit.append($('<option>').val(this.Id).text(this.Id)); 
    }); 
+1

이것은 실제 해결책처럼 보입니다. 그러나 루프 내에서 생성 된 옵션을 문자열 변수에 추가 한 다음 해당 문자열을 선택 상자에 한 번 추가하는 것이 좋습니다. DOM을 여러 번 조작하는 것보다 더 효율적입니다. –

관련 문제