【问题标题】:Move First Variable To Second Variable When New Input Received收到新输入时将第一个变量移动到第二个变量
【发布时间】:2016-07-11 09:57:47
【问题描述】:

更新 Var A 应该接收一个新值,但是 var b 应该只保留 var a 的先前值。如果 var a 为 7,则稍后更新为 9,则 var b 应显示 7 的旧实例,而 var a 显示 9。两者都必须能够保存到本地存储。目前只有 var a 保存到本地存储。

我正在使用 Javascript,当用户输入表单数据时,我想将变量数据移动到另一个变量中。

var a = 0; 变量 b = 0;

当用户第一次输入数据时,var a 接收一个值并将其保存到本地存储(这工作正常)。

如果用户再次访问此表单(var a 现在有一个值),我希望它移动到 var b,然后将新输入的数据保存到 var a。

这个过程会被重复。当用户再次访问表单时,var b 将始终被 var a 替换。这样我就可以显示过去的实例和最新的实例。有什么想法吗?

<form id="exercise-count"> <input id="form1" type="number" name="userinput"></form>

var a = documentGetElementById("userinput").value;

【问题讨论】:

    标签: javascript variables input var


    【解决方案1】:

    总是将a 的值分配给b

    // Somewhere:
    var a, b;
    
    // Somewhere else:
    b = a;
    a = document.getElementById("userinput").value;
    

    【讨论】:

    • 不,这只是将 b 分配给 a。 var a 应该接收新值,而 var b 应该接收 a 在新值之前的先前值。
    • 正是这段代码在做什么:将a的当前(以前)值分配给b。将新输入值分配给a。它确实b 分配给a
    • 嗯,我明白你在说什么...我玩了更多的小提琴,但它只将一个值保存到本地存储,这似乎是表单内部的值。它不存储以前的值。因此,如果您要再次访问该页面,它不会显示最新值 (var a) 和以前的值 (var b)。如果我遗漏了什么,我自 12 月以来才开始使用 JS 编码,还有很多东西要学。
    • 好吧,如果你还想在本地存储中存储b,你必须明确地这样做。
    • 那么你传递了错误的值。在更新a 后运行localStorage.setItem('a', a); localStorage.setItem('b', b);。没有看到你的实际代码,我只能猜测你做错了什么。
    【解决方案2】:

    您可以检查 var a 是否在 localStorage 中已有值

    if(localStorage.getItem("a") == undefined) {
        //save a
    } else {
        //save a to b
        //save a
    }
    

    【讨论】:

      【解决方案3】:

      也许这会回答你的问题:

      var input = document.getElementById('form1');
      var a = localStorage.getItem('userinput');
      var b = a;
      
      input.addEventListener('keyup', onKeyUp);
      
      function onKeyUp(event) {
        a = this.value;
        localStorage.setItem('userinput', a);
      }
      

      JSFiddle 演示:https://jsfiddle.net/s0dk5j6w/4/

      【讨论】:

      • 问题是 var b 总是用 a 更新。 Var A 应该接收一个新值,但是 var b 应该只保留 var a 的先前值。如果 var a 是 7,那么它稍后会更新为 9,那么 var b 应该显示 7 的旧实例,而 var a 显示 9。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多