I would just use JSON and local storage to keep track of which fields were checked, etc.
$(document).ready(function () { if (localStorage.getItem('boxes')) { var boxes = JSON.parse(localStorage.getItem('boxes')); $.each(boxes, function (idx, val) { var box = $('.main').eq(idx); box.prop('checked', val); $('#' + box.attr('alt')).toggle(val); }); } $('.main').on('change', function () { var val = $(this).attr('alt'), boxes = {}; $.each($('.main'), function (i, el) { boxes[$(el).index('.main')] = el.checked; }); $('#' + val).toggle(this.checked); localStorage.setItem('boxes', JSON.stringify(boxes)); }); });
DEMONSTRATION
source share