javascript - 单击已保存的复选框状态

标签 javascript

下面的代码用于保存复选框的状态,然后在我的 load__() 函数中调用时将保存的项目设置回选中状态;但是我需要的不仅仅是设置为 checked,而是需要在我的 load__() 函数中实际使用它们 .click() 作为否则不会提供数据。

  function checkSaver() { 
      user = JSON.parse(localStorage.getItem(user));

      var inputs = document.querySelectorAll('input[type="checkbox"]');
      user.userAchkData = [];

      inputs.forEach(function(input){
        user.userAchkData.push({ id: input.id, checked: input.checked });
      });

      localStorage.setItem(username, JSON.stringify(user));
      console.log(JSON.stringify(user));

    }
<小时/>
    function load_() { 
      // get saved latest checkbox states, recheck
      user = JSON.parse(localStorage.getItem(user));
      var inputs = user.userAchkData;

      inputs.forEach(function(input){ 
        if (input.id) { 
            // I need to click through the found checked here
            document.getElementById(input.id).checked = input.checked; 
        }
      });
<小时/>

最佳答案

您可以检查它们是否已选中,然后以编程方式触发点击:

if (input.id) { 
   // I need to click through the found checked here
   const element = document.getElementById(input.id);
   element.checked = input.checked; 
   if (input.checked) element.click();
}

我摆弄了一下,得到了一个简单的工作示例来检查保存的复选框。也许您可以根据您的需要进行调整:

const container = document.getElementById('checkboxes');
const data = JSON.parse(localStorage.getItem('checkboxes')) || new Array(3).fill(false);

window.addEventListener('DOMContentLoaded', () => {
  [...container.children].forEach((child, i) => { child.checked = data[i]; });
});

container.onchange = ({ target }) => {
  data[target.dataset.id] = target.checked;
  localStorage.setItem('checkboxes', JSON.stringify(data));
};
<div id="checkboxes">
<input type="checkbox" data-id="0">
<input type="checkbox" data-id="1">
<input type="checkbox" data-id="2">
</div>

关于javascript - 单击已保存的复选框状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60307197/

相关文章:

javascript - 最新的 jquery ui 不再支持按年份选择的日期选择器?

javascript - Jquery 检查 PHP 中是否已发布 $_POST

javascript - ENOLOCK npm 错误!运行 npm 审核修复时出错

Javascript - 查找对象数组(矩阵)中的不同属性

javascript - 无法获取对象属性值

javascript - 访问 Javascript 对象属性问题

javascript - 在 chrome 中打印 div,css 不起作用

javascript - 哪种方式效率高?

javascript - 参数 'cotroller' 不是函数,未定义

javascript - 如何使用react调用外部定义的javascript函数?