2015-01-29 4 views
1

JSON 개체에서 온 폼을 다시 채우는 데 문제가 있습니다. 나는 JSON.stringify (name)과 값을 사용했으며, 나에게 맞는 데이터 형식을 돌려 주었다. 그러나 $ .each 방법JSON 데이터에서 체크 박스 채우기

function fetchOrderFromLocalStorage() { 
    PROCESS_SAVE = true; 

    var mcs = localStorage.getItem(REPORTS_KEY); 
    console.log(mcs); 

    var jsn = JSON.parse(mcs); 
    console.log(jsn); 

    if (mcs.length == 0) { 
     return false; 
    } 
    $.each(jsn, function (name, val) { 
     var $el = $("input[name='" + name + "']"), 
      type = $el.attr('type'); 

     console.log(JSON.stringify(name) + ":" + JSON.stringify(val)); 

     switch (type) { 
      case 'checkbox': 
       $el.attr('checked', 'checked'); 
       break; 
      case 'radio': 
       $el.filter('[value="' + val + '"]').attr('checked', 'checked'); 
       break; 
      default: 
       $el.val(val); 
     } 
    }); 
    //console.log(jsn); 
    //for (var i = 0; i < jsn.length; i++) { 
    // var formInput = jsn[i]; 
    // $("form input[name='" + formInput.name + "']").val(formInput.value); 
    //} 
} 

아래 작품에서 주석 코드에 들어갈 것 같다,하지만 난뿐만 아니라 I가 확인 된 여기에서 몇 가지 코드를 시도 있도록 checkboxs을 채우 할 수 없습니다 작업. 그래서 그것을 시도하고 있지만 내 데이터가 올바른 형식이 아닙니다. JSON.Stringify()를 sonsole로 사용하여 jQuery 문서에 따라 정확한 결과를 얻으려고합니다.

Console result

답변

0

function fetchOrderFromLocalStorage() { 
    PROCESS_SAVE = true; 

    var mcs = localStorage.getItem(REPORTS_KEY); 
    console.log(mcs); 

    var jsn = JSON.parse(mcs); 
    console.log(jsn); 

    if (mcs.length == 0) { 
     return false; 
    } 


    for (var i = 0; i < jsn.length; i++) { 
     var formInput = jsn[i], 
      $el = $("input[name='" + formInput.name + "']"), 
      type = $el.attr('type'); 

     switch (type) { 
     case 'checkbox': 
      $el.attr('checked', 'checked'); 
      break; 
     case 'radio': 
      $el.filter('[value="'+formInput.value+'"]').attr('checked', 'checked'); 
      break; 
     default: 
      $el.val(formInput.value); 
     } 
    } 
} 
시도