2016-02-29 39 views
4

这是我的功能,它绑定文本框中的数据,我想用本地存储更新数据,我想存储新的数据。
请指导我如何在给定的点发布在本地存储的新数据如何将编辑后的数据存储在本地存储中?

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": "[email protected]", 
    "pass": "[email protected]", 
    "name": "akhil", 
    "car": "zen", 
    "year": "2014", 
    "member": "no", 
    "mobile": "9033098795" 
}, { 
    "email": "[email protected]", 
    "pass": "[email protected]", 
    "name": "suresh", 
    "car": "alto", 
    "year": "2015", 
    "member": "yes", 
    "mobile": "9998789333" 
}, { 
    "email": "[email protected]", 
    "[email protected]": "[email protected]", 
    "name": "rakesh", 
    "car": "wagonr", 
    "year": "2016", 
    "member": "no", 
    "mobile": "9033098794" 
}] 
+1

你面临什么问题?哪部分不工作? – gurvinder372

+0

数据绑定INI文本框,但如果我编辑绑定数据,然后新的数据不会在本地存储更新 –

+0

@AkhilTrivedi你有没有尝试在输入设置'change' eventListener? – aug

回答

2

我不看到你在这里面临任何问题,因为你已经掌握了“如何保存”的部分。

如果你想知道什么时候保存到本地存储,我会说这总是取决于你正在尝试做什么。

在大多数情况下,你可以使用onbluronchange DOM事件输入的值保存到localStorage的。当您想要保存未提交的表单时,这可能特别有用,以便用户在他再次访问该页面时可以恢复。

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

并更新updateData功能使用开关的情况下更新您的localStorage适当的值。

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

正如我之前所说的'何时保存'真的取决于您的要求。

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

+1

thaanx很... –

相关问题