Получить данные обратно из объекта в форму - PullRequest
0 голосов
/ 01 апреля 2020

В расширении Chrome я сохраняю пользовательский ввод (отмеченные флажки) - он работает и выглядит следующим образом:

function save_checkboxes() {
    const form = document.forms['cbx'];
    const data = Object.fromEntries(new FormData(form).entries());
/*     console.log(data); */
    chrome.storage.sync.set({
        savedCheckboxes: data
    }, function () {
/*         console.log(data); */
    });
}
document.getElementById("save_checkboxes").addEventListener("click", save_checkboxes);

Чем я хочу восстановить сохраненные данные, поэтому пользователь получает свои отмеченные флажки обратно до делаю новый выбор. Я пытаюсь сделать это следующим образом:

function restore_checkboxes() {
    chrome.storage.sync.get(['savedCheckboxes'], function (entries) {
console.log(Object.entries(entries.savedCheckboxes));

/*stumble, stumble, stumble*/

    )}
    }

В этом console.log уже отображается массив с сохраненными значениями, которые являются идентификаторами отмеченных флажков, как на скриншоте:

enter image description here

Мой вопрос : как вернуть значения в ранее отмеченные флажки?

1 Ответ

0 голосов
/ 01 апреля 2020

Для случаев, когда это кому-то нужно, есть две функции для сохранения и восстановления:

function save_checkboxes() {
    const form = document.forms['cbx'];
    const data = Object.fromEntries(new FormData(form).entries());

    chrome.storage.sync.set({
        savedCheckboxes: data
    }, function () {});
}
document.getElementById("save_checkboxes").addEventListener("click", save_checkboxes);

function restore_checkboxes() {
    chrome.storage.sync.get(['savedCheckboxes'], function (entries) {

        for (const[key, val]of Object.entries(entries.savedCheckboxes)) {

            const input = document.forms['cbx'].elements[key];
            switch (input.type) {
            case 'checkbox':
                input.checked = !!val;
                break;
            default:
                input.value = val;
                break;
            }
        }
    });
}
document.addEventListener('DOMContentLoaded', restore_checkboxes);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...