Ваш повар ie переопределяется, и в нем может храниться только первая информация о флажке. Кроме того, чтобы установить значение проп, вы должны передать его в качестве второго параметра.
Это должно обновить готового ie при нажатии, а также иметь возможность устанавливать значения из повара ie. * 1003. *
function updateCookie($input) {
var cookieObject = getCookieObject();
var inputName = $input.attr('name');
cookieObject[inputName] = $input.attr('value');
var jsonString = JSON.stringify(cookieObject);
document.cookie = 'cookieObject=' + jsonString;
console.log(jsonString);
}
function setFromCookie(){
var cookieObject = getCookieObject();
for(var inputName in cookieObject)
if(cookieObject.hasOwnProperty(inputName))
$(`.input[name="${inputName}"]`).prop('checked', cookieObject[inputName]);
}
function getCookieObject() {
var nameValueArray = document.cookie.split('=');
var cookieObject = {};
if(nameValueArray.length >= 2)
cookieObject = JSON.parse(nameValueArray[1]);
return cookieObject;
}
$('.input').each(function() {
var $this = $(this);
$this.on('click', function() {
$this.attr('value', String($this.is(':checked')))
updateCookie($this);
});
});
Хотя я бы порекомендовал вам использовать объект URLSearchParams для кодирования и декодирования параметров, поскольку вы полагаетесь на тот факт, что "="
не находится внутри строки JSON.