2014-10-26 86 views
-1

我正在将数据从当前页面转发到相同的下一页面,即每当再次加载页面时,代码将检查是否存在任何此类存储,如果是,则它将加载文本中的值框。我无法得到它的工作下面是代码 -HTML5存储不起作用

<!DOCTYPE html> 

<html lang="en" xmlns="http://www.w3.org/1999/xhtml"> 

<head> 
<meta charset="utf-8" /> 
<title></title> 
<script type="text/javascript"> 
    function values() 
    { 
     if(localStorage.getItem(pranav)) 
     { 
      document.getElementById(FName).innerText= sessionStorage.getItem(pranav); 
      document.getElementById(OName).innerText= sessionStorage.getItem(k); 
     } 
     else 
     { 
      sessionStorage.setItem("pranav", "P"); 
      sessionStorage.setItem("k", "P"); 
      return; 
     } 
    } 
</script> 

</head> 

<body> 
<form name="myform" action="Idea.html" onload="values(this.form)"> 
    <label>Please Enter Your Full Name = </label><input type="text" name="FName" id="FName" /> 
    <label>Please Enter Your Current Organization</label><input type="text" name="OName" id="OName" /> 
    <input type="submit" value="Submit" onclick="values(this.form)" /> 
</form> 

</body> 
</html> 

请帮助我,为什么这不工作?

+0

关键的“pranav”应该是在引号中的第一次调用'.getItem()' – Pointy 2014-10-26 16:04:12

回答

1

您还没有申报您使用的pranavk变量。另外,当您为输入字段分配值时,应该使用.value属性而不是.innerText

你也可以考虑在2个功能拆分代码:

<!DOCTYPE html> 
<html lang="en" xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta charset="utf-8" /> 
    <title></title> 
    <script type="text/javascript"> 
    function loadValues() { 
     var data = localStorage.getItem('data'); 
     if(data) { 
      data = JSON.parse(data); 
      document.getElementById('FName').value = data.firstName; 
      document.getElementById('OName').value = data.lastName; 
     } 
    } 

    function saveValues() { 
     var data = { 
      firstName: document.getElementById('FName').value, 
      lastName: document.getElementById('OName').value 
     }; 
     localStorage.setItem('data', JSON.stringify(data)); 
    } 
    </script> 
</head> 
<body onload="loadValues()"> 
    <form name="myform" action="Idea.html" onsubmit="saveValues()"> 
     <label>Please Enter Your Full Name = </label> 
     <input type="text" name="FName" id="FName" /> 
     <label>Please Enter Your Current Organization</label> 
     <input type="text" name="OName" id="OName" /> 
     <input type="submit" value="Submit" /> 
    </form> 
</body> 
</html> 
+0

只是尝试这样做,但JavaScript是不在页面重新加载时自动更改文本框的值或单击提交按钮。 – 2014-10-26 16:08:15

+0

好吧,你可能想把它分成两个函数:当文档被调用(body onload)时调用的函数和提交表单时调用的函数。我用一个例子更新了我的答案。 – 2014-10-26 16:09:27

+0

我使用XAMPP尝试了这段代码,并且在每个浏览器中都包含了Chrome,Waterfox和IE,但是当页面刷新时没有任何事情发生。加载时文本字段的值不会自动填充? – 2014-10-26 16:17:40