0
function getFormState() {
    var fields = document.getElementsByTagName('form')[0].elements;
    if (fields.length === 0) {
        return;
    };
    for (var i = 0; i <= fields.length - 1; i++) {
        var name = fields[i].getAttribute('name');
        if (document.getElementByTagName('name').checked === true) {
            localStorage.setItem('name', "true");
        } else {
            localStorage.setItem('name', "false");
        }
    }
}

function fillFormState() {
    var fields = document.getElementsByTagName('form')[0].elements;
    if (fields.length === 0) {
        return;
    };
    for (var i = 0; i <= fields.length - 1; i++) {
        var name = fields[i].getAttribute('name');
        getStatus = localStorage.getItem('name'); {
            if (getStatus === "true") {
                console.log("its checked");
                document.getElementByTagName("name").setAttribute('checked', 'checked');
            } else {
                console.log("its not checked");
            }
        }
    }
} // run the below functions when the web page is loadedwindow.onload = function () {
// check if HTML5 localStorage is supported by the browser
if ('localStorage' in window && window['localStorage'] !== null) {
    // get the form state
    getFormState();
    // save the state of the form each X seconds (customizable)
    setInterval('fillFormState()', 1 * 1000);

}
};

しかし、うまくいかないようです。そして、私はその理由を理解しようとしています。私はJavaScriptの経験があまりないので、非常に明白かもしれません。そのために残念。私はしようとしています。

4

1 に答える 1

0

このループのために、あなたlocalStorageが決して設定されていないと思います:

for (var i = 0; i <= fields.length - 1; i++) {
    var name = fields[i].getAttribute('name');
    if (document.getElementByTagName('name').checked === true) {
        localStorage.setItem('name', "true");
    } else {
        localStorage.setItem('name', "false");
    }
}

はありません。また、変数の代わりにdocument.getElementByTagName検索しています。"name"name

for (var i = 0; i <= fields.length - 1; i++) {
    var name = fields[i].getAttribute('name');
    if (fields[i].checked === true) { //Check the current field
        localStorage.setItem(name, "true"); //Set the actual name, not "name"
    } else {
        localStorage.setItem(name, "false");
    }
}
于 2013-09-23T15:13:36.040 に答える