Как сохранить локальные переменные javascript?
Я новичок в Javascript/Jquery, и я делаю мобильное веб-приложение с помощью jQuery mobile и jquery, и я не могу понять, как отображать все мои входы в одном месте. Независимо от того, сколько данных я вхожу в форму, он всегда отображает последнее введенное. Пожалуйста, любая помощь?
$(document).ready(function() {
if(localStorage['linrval'],localStorage['linrdate']){
$('#inrhist').prepend('<div class="inrval">'+localStorage['linrdate']+ ' ---- ' +localStorage['linrval']+ '</div>');
};
$('#inrbtn').click(function(){
var inrval=$('input[name=user]').val();
var inrdate=$('input[name=dateinr]').val();
localStorage.setItem('linrval',inrval);
localStorage.setItem('linrdate',inrdate);
$('#inrhist').prepend('<div class="inrval">'+inrdate+ ' ---- ' +inrval+ '</div>');
});
Пара вещей должна меняться здесь каждый раз, когда вам нужно добавить в массив вместо того, чтобы вы обновили значение элемента с тем же свойством. localStorage
поддерживает только строки.
$(document).ready(function() {
//localStorage.removeItem("users");
var userStr = localStorage.getItem('users');
if (userStr != null && userStr != undefined) {
var jsonObj = JSON.parse(userStr);
console.log("onload value", jsonObj);
$.each(jsonObj.items, function(i, item) {
$('#inrhist').prepend('<div class="inrval">'+item.user +'--'+item.dateinr+'</div>');
});
}
$('#inrbtn').click(function () {
var dataItems = { items: [] };
var inrval = $('input[name=user]').val();
var inrdate = $('input[name=dateinr]').val();
var item = { user: inrval, dateinr: inrdate };
var usersList = localStorage.getItem('users');
var jsonObj;
if (usersList == null) {
dataItems.items.push(item);
jsonObj = JSON.parse(JSON.stringify(dataItems));
}
else {
jsonObj = JSON.parse(usersList);
jsonObj.items.push(item);
}
jsonStr = JSON.stringify(jsonObj);
console.log(jsonStr);
localStorage.setItem("users", jsonStr);
$('#inrhist').prepend('<div class="inrval">' + inrdate + '--' + inrval + '</div>');
});
});
У вас есть следующее:
if(localStorage['linrval'],localStorage['linrdate']){...}
Такое выражение истинно тогда и только тогда, когда localStorage['linrdate']
истинно. Значение localStorage['linrval']
в основном игнорируется.
Возможно, вы этого хотите:
if( localStorage['linrval'] || localStorage['linrdate'] ){...}
^^
Вы также перезаписываете значения localStorage:
localStorage.setItem('linrval',inrval);
localStorage.setItem('linrdate',inrdate);