2013-11-01 2 views
1

그래서 나는이 로컬 스토리지에서 양식 데이터를 저장하는 파일을 JS 있습니다localStorage에 저장된 양식 데이터에서 양식을 채우는 방법은 무엇입니까?

그것은 일을하지만, 내가 어떻게 다시 그 정보를 검색하는 사용자가 사이트에 입력하면 양식을 미리 채울하기 위해 아무 생각이
$(document).on('pageinit', function() { // dom ready handler for jQuery Mobile 

    $('#form1').validate({ // initialize form 1 
     // rules 
    }); 

    $('#gotoStep2').on('click', function() { // go to step 2 
     if ($('#form1').valid()) { 
      // code to reveal step 2 and hide step 1 
     } 
    }); 

    $('#form2').validate({ // initialize form 2 
     // rules 
    }); 

    $('#gotoStep3').on('click', function() { // go to step 3 
     if ($('#form2').valid()) { 
      // code to reveal step 3 and hide step 2 
     } 
    }); 

    $('#form3').validate({ initialize form 3 
     // rules, 
     submitHandler: function (form) { 
      // serialize and join data for all forms 
      var data = $('#form1').serialize() + '&' + $('#form2').serialize() + '&' + $(form).serialize(); 
      window.localStorage.setItem('formData',data); 
      // ajax submit 
      return false; // block regular form submit action 
     } 
    }); 

    // there is no third click handler since the plugin takes care of this 
    // with the built-in submitHandler callback function on the last form. 

}); 

해당 필드에서 데이터가 올바른지 확인하십시오. 필드를 개별적으로 저장하는 방법을 알고 있지만 예제와 같이 serialize하는 경우이를 수행하는 방법을 모른다.

A는 스파키에 의해 example 작업, 난 그냥 BTW

window.localStorage(...) 추가 : 단지 3 예에서와 같이 100 개 이상의 필드가있어.

답변

1

URL에서 JSON을 가져 오는 메소드를 발견했으며 localStorage 기준을 충족하도록 수정했습니다.

post 1월)의 투 론강 (Turon에서 원본 함수 :

function getJsonFromUrl() { 
    var query = location.search.substr(1); 
    var data = query.split("&"); 
    var result = {}; 
    for(var i=0; i<data.length; i++) { 
    var item = data[i].split("="); 
    result[item[0]] = item[1]; 
    } 
    return result; 
} 

그리고,이 수정 된 버전이다

function getFormFromLocalStorage(station,set,container) { 
    var query = ls.getItem(station+set+container); 
    var data = query.split("&"); 
    var result = {}; 
    for(var i=0; i<data.length; i++) { 
    var item = data[i].split("="); 
    $('#'+item[0]).val(item[1]); 
    } 
    return result; 
} 

이 함수의 출력은 배열하고, 제 경우 기입 의지 양식에 제출 된 이전 입력과 함께 자동으로 양식을 출력하십시오.

희망이 누구도 도움이됩니다.

관련 문제