简体   繁体   English

如何在本地保存javascript变量?

[英]How can I save javascript variables locally?

I am a beginner in Javascript/Jquery and I am making a mobile web app using jquery mobile and jquery and I can't figure out how to display all my inputs in one place. 我是Javascript / Jquery的初学者,并且使用jquery mobile和jquery制作了一个移动Web应用程序,但我不知道如何在一个地方显示所有输入。 No matter how many data I enter into the form it always displays the last entered .Please, any help? 无论我在表格中输入多少数据,它始终会显示最后输入的内容。

$(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>');
   });

You have this: 你有这个:

if(localStorage['linrval'],localStorage['linrdate']){...}

Such expression is true if and only if localStorage['linrdate'] is true. 仅当localStorage['linrdate']为true时,此表达式才为true。 The value for localStorage['linrval'] is basically ignored. 基本上会忽略localStorage['linrval']的值。

Perhaps you want this: 也许您想要这样:

if( localStorage['linrval'] || localStorage['linrdate'] ){...}
                            ^^

You're also overwriting your localStorage values: 您还将覆盖您的localStorage值:

localStorage.setItem('linrval',inrval);
localStorage.setItem('linrdate',inrdate);

Couple of things need to change here every time you need to add into array instead of you update the item value with same property. 每当您需要添加到数组中而不是使用相同属性更新item值时,都需要在此处进行一些更改。 localStorage only supports strings. 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>');

        });

    });

LIVE DEMO 现场演示

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM