I'm trying to set a bush of variables in local storage but the function doesn't run, I've tried to get the value but without luck, How can I save fields in Local storage?
function setPerson(){
var person = { 'name': getElementById('name'), 'photo': getElementById('photo')};
// Put the object into the storage
alert(person);
localStorage.setItem('person', JSON.stringify(person));
};
HTML In the HTML I'm from fields put values into tags and they are populated, but when I try to fetch them and save them nothing is happening...
I also tried to out fixed values in there and then the alert is displayed, but then it only says object and not the value
var testObject = { 'one': 1, 'two': 2, 'three': 3 };
// Put the object into storage
localStorage.setItem('testObject', JSON.stringify(testObject));
// Retrieve the object from storage
var retrievedObject = localStorage.getItem('testObject');
alert('retrievedObject: ', JSON.parse(retrievedObject));;
First, you should use
console
instead ofalert
.And, if you want to use the retrieved object somewhere, you'd better store it in a variable:
The problem is that
getElementById
returns an HTML element, which is an object.Then,
JSON.stringify
will attempt to iterate its own properties.But probably, they haven't any (unless you added them manually).
Since you say they are fields, you can try saving its
value
instead:You can use localStorage like this:
jsFiddle
W3C Schools gives you detailed examples on how to work with html and local storage.
w3cSchools - Local Storage
getElementById should be changed to
Also this will get you the entire DOM element. I assume you want what's inside the tag so i would say use
instead. Just referencing the DOM element will give you a circular strucure error when you attempt to stringify it.
Sample code that i have confirmed works: