2013-09-23 17 views
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,所以它可能是非常明显的。对不起。我尝试着。复选框并尝试保存用户返回的所有复选框的状态

+1

您能更具体地了解代码的工作方式吗?浏览器控制台中是否有错误? – Pointy

回答

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"); 
    } 
}