javascript - 使用 localstorage HTML5 保存表单

标签 javascript jquery html forms local-storage

有没有办法将保存到localstorage 并再次重用它,就像这样的逻辑:

形成 :::::::::::::saveINTO:::::::::::::::::> 本地存储

形成 <::::::::::::::getFROM:::::::::::::::: 本地存储

用数据填充表单后,我想将表单及其内容保存在本地存储中,然后当我想用存储的数据填充其他表单时。

<form>
    First name: <input type="text" name="firstname"><br>
    Last name: <input type="text" name="lastname">
    <button onclick="StoreData();">store into local storage</button>
</form> 
<button onclick="RenderForm();">render from data again </button>
<form id="Copyform"><form>

JSFIDDLE 请 JSFIDDLE 回答。

已更新

最佳答案

您可以很容易地做到这一点,但是如果您想存储一个数组,您需要先对其进行序列化或编码,因为 localStorage 不处理数组。例如:

var yourObject = $('#your-form').serializeObject();

为了省事,您可以:

localStorage['variablename'] = JSON.stringify(yourObject)localStorage.setItem('testObject', JSON.stringify(yourObject));

并检索:JSON.parse(localStorage['yourObject']);JSON.parse(localStorage.getItem('yourObject')); 然后字段值可用作 yourObject.fieldName

编辑:在上面的示例中,我使用了 serializeObject,它是一个 jQuery 插件。使用的代码如下。 (如果您愿意,可以使用 serializeArray,但您必须做更多工作才能使数据在检索到后可用):

jQuery.fn.serializeObject = function () {
  var formData = {};
  var formArray = this.serializeArray();

  for(var i = 0, n = formArray.length; i < n; ++i)
    formData[formArray[i].name] = formArray[i].value;

  return formData;
};

关于javascript - 使用 localstorage HTML5 保存表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19952403/

相关文章:

javascript - 修改li :after from content script

javascript - 我的管理面板中有引导侧边栏菜单,当我单击并获取链接时,有两个元素处于事件状态,如图所示,为什么?

javascript - 如何为滚动上的内容设置动画?

javascript - 使用 Bootstrap 动态填充下拉菜单

javascript - JS 显示 SWF 的 bytesLoaded

javascript - Spring WebSockets Stomp.subscribe 不工作

javascript - ngFor 中的 ngModelGroup?

jquery - 使用 jquery 更新文本时,.on() 更改函数不会触发

javascript - 从 <pre> 读取数字

javascript - 检测客户端是否为iPhone,如果是则显示特定div