首页 > 解决方案 > 通过 JSON 数组/对象循环 HTML 表单数据?

问题描述

我已经在这个网站和互联网上搜索了几个小时,并在之前提出了一个问题,这让我至少更进一步。但是我真的很难理解如何将多个数组保存到我的localStorage.

我可以使用硬编码数组来理解这个过程,但是一旦我尝试实现localStorage数据,我就无法理解该怎么做。

这是我到目前为止所尝试的(在另一个 SO 用户的帮助下):

$("#submit").click(function () {

    // prepare
    var formData = $("#regForm").serializeArray();
    // get all stored as Array []
    var bookings = JSON.parse(localStorage.getItem('bookings') || '[]');

    for (formData = 0; formData < localStorage.length; formData++) {
    // insert and save
    localStorage.setItem("bookings", JSON.stringify([formData]));
    }
    
});

没有for循环它可以正常工作,但是当我用新数据重新提交表单时,它会替换它而不是创建新索引?

基本上我正在尝试为遛狗创建一个约会计划程序,我需要能够查看每个预订、修改、删除,当然还可以查看预订(所有客户端 - 没有数据库)。

我应该先初始化我的数组吗?如何处理 for 循环?感谢任何帮助,因为我想学习,但我已经在这几个小时没有运气。

标签: javascriptarraysjsonlocal-storage

解决方案


你可以像下面这样使用。将新值保存在变量中先前存储的值中,并在最后更新本地存储。

$("#submit").click(function () {

    var formData = $("#regForm").serializeArray();
    var bookings = JSON.parse(localStorage.getItem('bookings') || '[]');
   
    for (formData = 0; formData < localStorage.length; formData++) {
        bookings.push(formData)   
    }
    localStorage.setItem("bookings", JSON.stringify(bookings));
});

推荐阅读