【发布时间】: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 nullonvar utilizadores = JSON.parse(localStorage.getItem('utilizadores')),尝试设置var utilizadores = [],它会起作用 -
@Aron 我不使用任何脚本。谢谢你向我报告。我会努力帮助新人。我通常复制粘贴新贡献者的第一篇文章(审查队列)的句子。我会改变我的行为。
标签: javascript jquery local-storage