【发布时间】:2023-03-04 08:44:01
【问题描述】:
我有一个包含多个复选框的表单,当我单击它们时,我想在一个 cookie 中添加/删除键值对(输入名称 + 真/假)。
当我点击复选框时,只有第一对会显示在 console.log 中。
这是我目前为止的结果:
HTML:
<form class="form">
<input class="input" name="expert_id_1" type="checkbox" />
<input class="input" name="expert_id_2" type="checkbox" />
<input class="input" name="expert_id_3" type="checkbox" />
<input class="input" name="expert_id_4" type="checkbox" />
</form>
JS:
function setCookie() {
var customObject = {};
var inputName = $('.input').attr('name');
customObject[inputName] = $('.input').prop('checked');
var jsonString = JSON.stringify(customObject);
document.cookie = 'cookieObject=' + jsonString;
console.log(jsonString);
}
function getCookie() {
var nameValueArray = document.cookie.split('=');
var customObject = JSON.parse(nameValueArray[1]);
$('.input').prop('checked') = customObject[inputName];
}
$('.input').each(function() {
$(this).on('click', function() {
if ($(this).is(':checked')) {
$(this).attr('value', 'true');
} else {
$(this).attr('value', 'false');
}
setCookie();
});
});
【问题讨论】:
-
Cookies 只能存储文本,所以我会
JSON.stringify()然后存储一个数组或对象。
标签: javascript jquery cookies key-value