2017-11-09 11 views
1

フォームデータをキャッシュして、ユーザーがインターネット接続を失って戻ってくると、ページを更新したときにローカルストレージを介して情報を回復できるようにします。JSキャッシング - ローカルストレージからのデータをフォームに戻す

私はドロップダウン、テキストボックス、チェックボックスを持つ大きなフォームを持っています。

フォーム全体をJSON形式で保存するlocalstorageを作成しました。

function CacheData() 
{ 
    var yourObject = $('#application-form').serializeObject(); 
    localStorage.setItem('testObject', JSON.stringify(yourObject)); 
} 

jQuery.fn.serializeObject = function() { 
    var formData = {}; 
    var formArray = this.serializeArray(); 
    for (var i = 0, n = formArray.length; i < n; ++i) 
     formData[formArray[i].name] = formArray[i].value; 

    return formData; 
    }; 

しかし、今は、ページを更新すると、私は自動的にフィールドに入力されるように、ローカルストレージに格納されたデータを表示したいです。これで

var myData = JSON.parse(localStorage.getItem("testObject")); 

if (myData != null) { 
    document.getElementById("application-form").innerHTML = myData; 
} 

私はちょうどObjectオブジェクトが書き込まれますし、私のすべてのフィールドがなくなっています。 Jsonオブジェクトを元に戻してフォームに戻すにはどうすればよいですか?個々のオブジェクトすべてに対して行う必要がありますか、ジェネリック関数があります。

私はPopulate HTML form with data saved on Local Storageをチェックしましたが、それは私のために働いていません。私がそれを望む方法。

答えて

1

var myData = JSON.parse(localStorage.getItem("testObject")); 

if (myData != null) { 
    document.getElementById("application-form").innerHTML = JSON.stringify(myData); 
} 

を使用してみてくださいそしてよりも、このようなあなたの機能を編集します

document.getElementById("application-form").innerHTML = myData.YourFieldName 
+0

私は値を見ることができていますが、値は、そのためには、私が持っているだろう意味し、フィールドではありませんそれらのすべてのために個別に行うには?上記のコードと同様に、私は自分のlocalStorageにあるものは何でも印刷しています – Tina

関連する問題