JSFiddle - React, Tailwind, and code Playground
HTML
<form>
<input type='text' name='input1' />
<input type='text' name='input2' />
</form>
JavaScript
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=/";
}
function getCookie(c_name) {
if (document.cookie.length > 0) {
c_start = document.cookie.indexOf(c_name + "=");
if (c_start != -1) {
c_start = c_start + c_name.length + 1;
c_end = document.cookie.indexOf(";", c_start);
if (c_end == -1) {
c_end = document.cookie.length;
}
return unescape(document.cookie.substring(c_start, c_end));
}
}
return "";
}
function form2string($form){
return JSON.stringify($form.serializeArray());
}
function string2form($form, serializedStr){
var fields = JSON.parse(serializedStr);
for(var i=0; i< fields.length; i++){
var controlName = fields[i].name;
var controlValue = fields[i].value;
$form.find("[name='+ controlName +']").val(controlValue);
}
}
prevData=getCookie('myFormData');
prevData && string2form($('form'),prevData);
$("form :input").change(function() {
createCookie('myFormData', form2string($(this).closest('form')), 30);
});