【问题标题】:localStorage clears after refreshlocalStorage 刷新后清除
【发布时间】:2019-02-11 00:25:04
【问题描述】:

由于某种原因,每次我尝试在属性 Reservas 下将某些内容保存到我的 localStorage 时,如果我刷新页面,localStorage 中的数据将被清除。

我已经使用类似的方法将注册表单中的数据存储在我的应用程序(其他页面)上,并且它完美地存储了它。我不知道为什么这不起作用。

$(document).ready(function() {
  var userlog;
  var reserva = {}
  var reservas = []
  var dia_semana_input = document.getElementById('sel_dia')
  var refeicao_input = document.getElementById('sel_tipo')
  var prato_input = document.getElementById('sel_prato')

  var error_fix = {
    nome: "1",
    dia: "1",
    refeicao: "1",
    prato: "1"
  }
  reservas.push(error_fix)
  localStorage.setItem("Reservas", JSON.stringify(reservas));
  var utilizadores = JSON.parse(localStorage.getItem('utilizadores'))
  console.log(utilizadores)
  console.log(reservas)
  reservas = JSON.parse(localStorage.getItem('Reservas'))
  /* verificação para mais tarde utilizar nas reservas*/
  for (var i = 0; i < utilizadores.length; i++) {
    if (utilizadores[i].ativo == 1) {
      userlog = utilizadores[i].Username
    }
  }

  $("#btnReservar").click(function() {
    /*Stores object into array */
    /*which then stores into local storage(?)*/
    var dia_semana = dia_semana_input.value
    var refeicao = refeicao_input.value
    var prato = prato_input.value
    for (var i = 0; i < reservas.length; i++) {
      if (reservas[i].nome == userlog && reservas[i].dia == dia_semana) {
        console.log("primeiro")
        alert('Já existe uma reserva para esse dia!')
      } else {
        console.log("segundo")
        reserva.nome = userlog
        reserva.dia = dia_semana
        reserva.refeicao = refeicao
        reserva.prato = prato
        reservas.push(reserva)
        console.log(reservas)
      }
    }

    localStorage.setItem('Reservas', JSON.stringify(reservas))
  });
})

【问题讨论】:

  • @Papipone 您是否有一个脚本可以自动标记首次发布的帖子,无论内容如何?如果没有写得不好、有漏洞的脚本,你肯定不会得出这个结论吗?
  • 你在第一次调用getItem()之前调用了setItem(),所以你可能覆盖了现有值
  • Uncaught TypeError: Cannot read property 'length' of null on var utilizadores = JSON.parse(localStorage.getItem('utilizadores')),尝试设置var utilizadores = [],它会起作用
  • @Aron 我不使用任何脚本。谢谢你向我报告。我会努力帮助新人。我通常复制粘贴新贡献者的第一篇文章(审查队列)的句子。我会改变我的行为。

标签: javascript jquery local-storage


【解决方案1】:

您可以使用该键呼叫setItem。这将导致它被设置为reservas 中的值。也许你想打电话给getItem

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    • 2021-03-19
    • 1970-01-01
    • 2011-12-07
    • 2017-06-03
    • 2023-04-08
    相关资源
    最近更新 更多