使用JavaScript更新LocalStorage中的对象?

使用JavaScript更新LocalStorage中的对象?,javascript,jquery,local-storage,Javascript,Jquery,Local Storage,编辑-更新JS代码以显示评论中提出的建议,但仍然存在问题。。现在按钮不会转到edit.html,而是返回action.html?它嵌套在editForm的内部 我有一个简单的表单,我已经学会了使用localStorage提交、添加、删除和显示预订(感谢在这里提供帮助的人!) 我的最后一项任务是修改预订,我想我已经差不多做到了,但不确定如何调用索引(请原谅我的行话)来替换值 表单提交后,web地址的内容类似于edit.html?OldFirstName=NewFirstName&OldLastNa

编辑-更新JS代码以显示评论中提出的建议,但仍然存在问题。。现在按钮
不会转到
edit.html
,而是返回
action.html
?它嵌套在editForm的内部

我有一个简单的表单,我已经学会了使用
localStorage
提交、添加、删除和显示预订(感谢在这里提供帮助的人!)

我的最后一项任务是修改预订,我想我已经差不多做到了,但不确定如何调用索引(请原谅我的行话)来替换值

表单提交后,web地址的内容类似于
edit.html?OldFirstName=NewFirstName&OldLastName=NewLastName
,但是存储中的值不会更新,它会抛出一个错误

Uncaught TypeError: Cannot read property 'fname' of undefined`.
我可以看出问题来自这样的原因:

$("#edit").click(function (i) {
您希望click事件返回索引,但实际上并非如此,
i
将表示事件对象,因此您可能需要使用
$(this)
获取相关输入,如:

$("#edit").click(function (e) {
    var parent_form = $(this.form);

    var fname = parent_form.find('.input:eq(0)').val();
    var lname = parent_form.find('.input:eq(1)').val();

    ....
注意:id不能重复,因此您需要避免重复,您可以使用如下前缀:

<input type="text" class="input" id="fname_${i}" placeholder="${bookingItems[i].fname}" name="${bookingItems[i].fname}" required>
<input type="text" class="input" id="lname_${i}" placeholder="${bookingItems[i].lname}" name="${bookingItems[i].lname}" required>


这段代码迫切需要封装预订数据库逻辑,将其与UI逻辑分离。我将对此进行研究,谢谢@AlnitakThank,我将尝试一下。我的编辑功能已经停止工作,所以我需要先修复它。不幸的是,这没有什么区别。我不太理解
.input:eq(0)
部分,你能解释一下吗?你有两个输入fname和lname,
:eq
将按索引选择它们,尝试在
$(“#编辑”)之后添加
e.preventDefault()
。单击(函数(e){
谢谢,我想在前面加上这个,但仍然没有运气,抛出错误:
无法读取未定义的属性'find'
Ok try
var parent_form=$('#regForm');
var parent_form=$(this)。最近的('form');
而不是
var parent_form=$(this.form)
<input type="text" class="input" id="fname_${i}" placeholder="${bookingItems[i].fname}" name="${bookingItems[i].fname}" required>
<input type="text" class="input" id="lname_${i}" placeholder="${bookingItems[i].lname}" name="${bookingItems[i].lname}" required>