JSFiddle - React, Tailwind, and code Playground
HTML
<script src="http://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.2/modernizr.min.js"></script>
<input name="input1" />
<br />
<br />
<input name="input2" />
<br />
<br />
<input name="input3" />
<br />
<br />
<textarea name="input4"></textarea>
JavaScript
//utility function to serialize textarea and input in a json obj
$.fn.serializeObject = function () {
var o = {};
var a = this.serializeArray();
$.each(a, function () {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
//save data generic function
function saveData() {
var dataObj = JSON.stringify($("input,textarea").serializeObject());
if (!Modernizr.localstorage) {
saveToLocalStorage(dataObj);
} else {
createCookie("jsonobj", dataObj, 1);
}
}
//save to local storage
function saveToLocalStorage(dataObj) {
localStorage.setItem('testObject', dataObj);
}
function createCookie(name, value, days) {
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = '; expires=' + date.toGMTString();
} else var expires = '';
document.cookie = name + '=' + value + expires + '; path=/';
}
//test when user is about to leave
window.onbeforeunload = function (e) {
saveData();
var msg = 'The values are stored in local storage or cookies';
e = e || window.event;
if (e) e.returnValue = msg;
return msg;
};