存储动态创建的复选框值

storaging of dynamically created checkbox value

本文关键字:复选框 创建 动态 存储      更新时间:2023-09-26

所以我的一个 chrome 扩展程序上有一个类似待办事项列表的功能,但我只是无法获得复选框来存储值。

正在采取一种非常规的方法,其中我有一个textbox,当我按 Enter 时,textbox值在我的div 中创建我的第一个待办事项列表元素,然后将textbox值发送到一个textarea,在那里我存储了由'n分隔的所有待办事项列表元素。然后,当我重新加载页面时,我存储的文本区域用新行分隔值,并在div 中输出它们。可能不是做这样的事情的最佳方式,但到目前为止它对我有用。

无论如何,现在我正在尝试存储动态创建的复选框的复选框值。因此,我为每个复选框分配了一个 id i其中i < textareaLines。我似乎无法弄清楚如何动态存储复选框,我知道如何单独存储它们,但这对我来说似乎更难。

以下是我用于setting同步存储的代码:

var todolines = $('#todoListSave').val().split(''n');
        for(var i = 0;i < todolines.length;i++){
        console.log(i);
        var isTodoListChecked = document.getElementById(i).checked;
        chrome.storage.sync.set({
             todoList: isTodoListChecked
        });
          console.log(isTodoListChecked); 
        }

这是我getting同步存储的代码:

chrome.storage.sync.get('todoList', function (result) {
        todoList = result.todoList;
        console.log(todoList);
});

有什么想法吗?也许我只是真的想多了,但我似乎想不通。

谢谢。

我的猜测是,由于复选框是动态生成的,因此该行

var isTodoListChecked = document.getElementById(i).checked;

行不通。您需要调用 jquery .on() 函数的复选框值。

$(document).on('checked', '#'+i, function(e){