javascript - 如何将编辑后的数据存储在本地存储中?

标签 javascript jquery arrays local-storage

这是我在文本框中绑定(bind)数据的函数,我想在本地存储中使用它更新数据,我想存储新数据。
请指导我如何在给定时间点在本地存储中发布新数据

function view(email) {
    $("#one").remove();
    var e = email;
    var $header = $("<h2 align='center' id='tab'>Edit User Details</h2><br>");
    data = JSON.parse(localStorage.getItem('person'));
    var $foot = $("<div class='modal-footer'>&copy; akhil trivedi</div>");
    myObject = data.filter(function(person) {
        return person.email == email;
    });

    var $div1 = $("<div class='col-md-7 col-md-offset-3'></div><br>");
    for (var i = 0; i < myObject.length; i++) {
        var $line2 = $("<form class='form-group'></form>");
        if (myObject[i].member == "yes") {
            $line2.append($("<input type='checkbox' class='checkbox-inline' id='test' name='test' checked='checked' disabled>&nbsp;&nbsp;<label>Already Member</label><br><br>").val(myObject[i].member));
        } else {
            $line2.append($("<input type='checkbox' class='checkbox-inline' id='test' name='test'>&nbsp;&nbsp;<label>Want to become Member ?</label><br><br>").val(myObject[i].member));
        }
        //$line2.append( $("<input type='checkbox' class='checkbox' id='test' name='test' checked='checked'><label>Member ?</label><br><br>").val(emp.member));
        $line2.append($("<input  type='text' class='form-control' value='' required><br><br>").val(myObject[i].name));
        $line2.append($("<input  type='email' class='form-control' value='' required><br><br>").val(myObject[i].email));
        $line2.append($("<input  type='tel' id='phone' class='form-control' value='9' name='phone' required><br><br>").val(myObject[i].mobile).mask("(999) 999-9999"));
        $line2.append($("<input type='submit' onclick='updatedata(\"" + myObject[i].email + "\")'>"));
        $line2.append($("<br>"));
        $line2.append($("<br>"));
        $line2.append($("<br>"));
        $line2.append($("<select class='form-control'><option>select</option><option>zen</option><option>alto</option><option>wagonr</option></select>"));
        $line2.append($("<br>"));
        $line2.append($("<select class='form-control'><option>select</option><option>2013</option><option>2014</option><option>2015</option></select>"));
        $line2.append($("<br>"));
        $line2.append($("<br>"));
        $line2.append($("<h2 align='center' id='tab'>Car Owned</h2>"));
        $line2.append($("<table class='table table-responsive'><thead><th>Car</th><th>year</th><th>delete</th></thead><tr><td>" + myObject[i].car + "</td><td>" + myObject[i].year + "</td><td><a href='' onclick='deletecar(\"" + myObject[i].email + "\")'><img src='images/delete.png'></a></td></tr></table>"));
        $div1.append($header);
        $div1.append($line2);
        $div1.append($foot);
        $div1.appendTo(document.body);
    }
}

这是我的更新函数

function updatedata(email) {
    debugger
    var newd = [{
        "name": myObject[0].name,
        "email": myObject[0].email,
        "phone": myObject[0].mobile,
        "car": myObject[0].car,
        "year": myObject[0].year,
        "member": myObject[0].member
    }];
    localStorage.setItem("person", JSON.stringify(newd));
}

这是我的本地存储阵列

[{
    "email": "akhiltrivedi@outlook.com",
    "pass": "akhil@1",
    "name": "akhil",
    "car": "zen",
    "year": "2014",
    "member": "no",
    "mobile": "9033098795"
}, {
    "email": "anandpatel@gmail.com",
    "pass": "Smith@1",
    "name": "suresh",
    "car": "alto",
    "year": "2015",
    "member": "yes",
    "mobile": "9998789333"
}, {
    "email": "contact@akhiltrivedi.com",
    "pass@1": "akhil@1",
    "name": "rakesh",
    "car": "wagonr",
    "year": "2016",
    "member": "no",
    "mobile": "9033098794"
}]

最佳答案

我看不到您在这里遇到任何问题,因为您已经了解了“如何保存”部分。

如果您想知道何时保存到本地存储,我会说这始终取决于您尝试做什么。

在大多数情况下,您可以使用 onbluronchange DOM 事件将输入的值保存到本地存储。当您想要保存未提交的表单以便用户在再次访问该页面时可以继续时,这会特别有用。

$line2.append($("<input  type='text' class='form-control' value='' onchange='updateData(\"name\",this.value)' required><br><br>").val(myObject[i].name));

并更新您的 updateData 函数以使用 switch case 更新本地存储中的适当值。

但是如果您没有任何服务器存储机制或没有计划任何服务器存储机制,您始终可以在提交表单时将表单数据保存到本地存储。

就像我之前说的'什么时候保存'真的符合你的要求。

您还可以使用库 autoStorage这可以帮助您在提交表单时存储整个表单数据,并在用户再次访问该页面时检索它们。

关于javascript - 如何将编辑后的数据存储在本地存储中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35694753/

相关文章:

javascript - 将变量设置为以 Null 返回的字符串

facebook - Facebook 的本地 Javascript SDK 是如何解决依赖关系的?

javascript - 用于修改页面脚本包含和 JS 的 Chrome 扩展

jquery - 使用每个 jQuery 函数附加元素

javascript - 是否可以实现 CSS 缩放过渡而不在滚动状态之间闪烁?

javascript - 在 Modal Popup Extender 窗口(JavaScript)之间闪烁?

arrays - 尝试为 Azure ARM 模板创建动态依赖于数组

Javascript 与 C++ 通信

javascript - 使用 push 创建一个包含来自其他数组的值的数组,而不创建二维数组 (JavaScript)

ios - enumerated() 常数时间 O(1) 是如何实现的?