【问题标题】:Update values in object in sessionStorage更新 sessionStorage 中对象的值
【发布时间】:2019-11-06 13:29:42
【问题描述】:

我有这个对象存储在会话存储中:

0: {FromName: "FName", FromLastName: "", FromAddress: "F Street", FromCountry: "Portugal", FromCity: "FC",…}
1: {FromName: "FName", FromLastName: "", FromAddress: "F Street", FromCountry: "Portugal", FromCity: "FC",…}
2: {FromName: "", FromLastName: "", FromAddress: "", FromCountry: "", FromCity: "", FromPostCode: "",…}

它显示购物车项目列表。

当我在购物车中时,我有一个按钮,可以让我在表单中显示值,并且它已经从 sessionStorage 中获取了正确的值。

问题是,如何正确使用显示的表单和更新的对象来更新值?

这是从会话存储中的对象中获取正确值的代码:

  e.preventDefault();

  var itemsInCart = JSON.parse(sessionStorage.getItem('productList'));
  var ID = $(this).data('id');

  for (var i = 0; i < itemsInCart.length; i++) {

    var itemsinCartID = itemsInCart[i].keyID;

    if (ID == itemsinCartID) {

    $('.product-image').attr('src', itemsInCart[i].Product);
    $('#message').val(itemsInCart[i].Message);

    // from inputs
    var fromName = $('#from-name-input').val(itemsInCart[i].FromName);
    var fromLastName = $('#from-last-name-input').val(itemsInCart[i].FromLastName);
    var fromAddress = $('#from-address-input').val(itemsInCart[i].FromAddress);
    var fromCountry = $('#from-country-input').val(itemsInCart[i].FromCountry);
    var fromCity = $('#from-city-input').val(itemsInCart[i].FromCity);
    var fromPostCode = $('#from-postalcode-input').val(itemsInCart[i].FromPostCode);
    var fromPhone = $('#from-phone-input').val(itemsInCart[i].FromPhone);

    // to inputs
     var toName = $('#to-name-input').val(itemsInCart[i].ToName);
     var toLastName = $('#to-last-name-input').val(itemsInCart[i].ToLastName);
     var toAddress = $('#to-address-input').val(itemsInCart[i].ToAddress);
     var toCountry = $('#to-country-input').val(itemsInCart[i].ToCountry);
     var toCity = $('#to-city-input').val(itemsInCart[i].ToCity);
     var toPostCode = $('#to-postalcode-input').val(itemsInCart[i].ToPostCode);
     var toPhone = $('#to-phone-input').val(itemsInCart[i].ToPhone);
    break;
    }
  }

});

这是上面的代码填写的表格:

然后我想使用点击表单中的“编辑消息”按钮来更新我在表单中更改的新值。

【问题讨论】:

    标签: javascript object key session-storage


    【解决方案1】:

    如果我理解正确的话。您想用表单中的新项目更新 sessionStorage 项目。是的? 我会考虑将代码更改为:

    const tempObject = {
      FromName: $('#from-name-input').val(itemsInCart[i].FromName),
      FromLastName = $('#from-last-name-input').val(itemsInCart[i].FromLastName)
    }
    Object.assign(itemsInCart, tempObject)
    sessionStorage.setItem('productList', JSON.strigify(itemsInCart));
    

    【讨论】:

    • 此代码是填写表格的代码。然后,我想更改表单中的值,点击提交按钮并用新值更新旧值。
    • “那么”是什么时候?
    • 我更新了我的问题,我想你现在可以理解了。
    • 它用新的对象替换了会话存储中的对象,但它正在擦除对象的其他条目。 0: {FromName: "FName", FromLastName: "", FromAddress: "F Street", FromCountry: "Portugal", FromCity: "FC",…}
    • 好的。所以你在 sessionStorage 中有一个数组。您要更新该数组的条目还是推送一个新条目?
    猜你喜欢
    • 1970-01-01
    • 2016-04-21
    • 2023-01-07
    • 1970-01-01
    • 2020-05-07
    • 1970-01-01
    • 2011-09-05
    • 2018-12-01
    • 1970-01-01
    相关资源
    最近更新 更多