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;
};