Javascript 如何使用SessionStorage保存和恢复数据?

Javascript 如何使用SessionStorage保存和恢复数据?,javascript,Javascript,我有一个表格,我收集数据,验证它,一旦验证,我可以发送它。到目前为止还不错,但我还想保存它,以便通过DNI您可以检索以前的表单。当问题出现时又是什么呢。我创建了两个额外的函数,一个用于保存数据,另一个用于恢复表单。问题是,不仅数据没有保存,而且在恢复时,只恢复最后一个表单,而不需要简单地放置DNI,也就是说,假设只有您可以使用DNI进行恢复,并且当您放置一个字母时,整个表单已经被跳过,不应该是这样 说到这里,这里是这些函数的Javascript代码和HTML 函数重置(){ form=docu

我有一个表格,我收集数据,验证它,一旦验证,我可以发送它。到目前为止还不错,但我还想保存它,以便通过DNI您可以检索以前的表单。当问题出现时又是什么呢。我创建了两个额外的函数,一个用于保存数据,另一个用于恢复表单。问题是,不仅数据没有保存,而且在恢复时,只恢复最后一个表单,而不需要简单地放置DNI,也就是说,假设只有您可以使用DNI进行恢复,并且当您放置一个字母时,整个表单已经被跳过,不应该是这样

说到这里,这里是这些函数的Javascript代码和HTML

函数重置(){
form=document.getElementById(“formu”);
arall=formu.getElementsByTagName(“输入”);

对于(var i=0;i,据我所知,您希望保存表单数据,并在以后出于某种目的进行恢复。如果您希望在本地存储数据,则可能希望在提交表单时将数据存储在localStorage中,也可以在需要时从localStorage恢复表单数据

要在localstorage中存储数据,格式如下(下一行使用formData名称将数据保存在浏览器的localstorage中)

localStorage.setItem("formData",JSON.stringify(<form data>))
上行将获取存储在formData变量中的数据。

该函数使用字符串,而不是对象。这意味着键和值必须是字符串。将对象转换为字符串的一种简单方法是使用
JSON.stringify()
,因此:

sessionStorage.setItem(guardaDNI、JSON.stringify(datos));

检索数据后,必须使用
JSON.parse()
将其转换回对象:

datos=JSON.parse(sessionStorage.getItem(guardaDNI));

然后,您可以使用检索到的数据填充表单:

document.getElementById('nombre').value = datos.nombre;
document.getElementById('email').value = datos.email ;
document.getElementById('edad').value = datos.edad;
document.getElementById('etsex').value = datos.etsex;
document.getElementById('tlf').value = datos.tlf;
document.getElementById('estado_civil').value = datos.estado_civil;
document.getElementById('seleccion').value = datos.seleccion;
document.getElementById('txtdesc').value = datos.txtdesc;
或者您可以缩短该代码:

['nombre', 'email', 'edad', 'etsex', 'tlf', 'estado_civil', 'seleccion', 'txtdesc'].forEach(function(key) {
  document.getElementById(key).value = datos[key];
})

@krishnakirit05我想要的是,当你给它保存时,它保持保存状态,即使它在恢复时写入其他表单,我也只能用我保存的ID恢复,在恢复按钮中,我只能输入JSON。parse@LawrenceCherone我该把它放在哪里呢?这把所有的东西都保存在t下键
formData
.OP希望通过DNI保存和检索,这是用户提供的值。这意味着您理论上应该能够保存多组设置,每个设置都使用自己的DNI值。因此,您的代码不会按原样工作。是的,我想这样做,但我不知道几个小时以来我是如何更改它并尝试其他事情的“我想不出怎么做了。”kmoser说
['nombre', 'email', 'edad', 'etsex', 'tlf', 'estado_civil', 'seleccion', 'txtdesc'].forEach(function(key) {
  document.getElementById(key).value = datos[key];
})