如何设置Cookie值为复选框的选中状态布尔值
实现方法
要让Cookie值和复选框选中状态同步,只需要在事件触发时读取复选框的checked布尔属性,拼接为Cookie值即可,同时补充页面加载时的Cookie读取回显逻辑,完整实现如下:
修改后的完整JS代码
// 绑定复选框状态变更事件,用change比click更兼容键盘操作等场景 document.getElementById("example").addEventListener("change", exampleCookie); function exampleCookie() { const checkbox = document.getElementById("example"); // 读取当前复选框选中状态,拼接为Cookie字符串 // path=/ 配置保证站点下所有页面都能读取到该Cookie,可按需添加max-age配置过期时间 document.cookie = `exampleCookie=${checkbox.checked}; path=/`; } // 页面加载时读取Cookie,回显复选框状态 window.addEventListener("DOMContentLoaded", () => { const cookieArr = document.cookie.split('; '); const targetCookie = cookieArr.find(item => item.startsWith('exampleCookie=')); if (targetCookie) { const checkedValue = targetCookie.split('=')[1] === 'true'; document.getElementById("example").checked = checkedValue; } // 初始化触发一次,保证首次加载页面时Cookie和初始状态同步 exampleCookie(); });
关键说明
- 复选框的
checked属性本身就是true/false布尔值,直接读取即可拿到当前选中状态 - Cookie仅支持存储字符串类型,因此存入的布尔值会自动转为
"true"/"false"字符串,读取时手动判断转回布尔值即可 - 不推荐用
click事件监听复选框状态,change事件会在值真正发生变更时触发,覆盖键盘操作、脚本修改值等更多场景 - 如果需要Cookie长期有效,可以在Cookie字符串后追加
max-age=秒数配置,例如; max-age=31536000表示有效期1年
内容的提问来源于stack exchange,提问作者SlipperyDuck777
相关产品推荐
相关产品推荐

