如何使用文本框中的 onchange() 事件获取旧值

新手上路,请多包涵

我有一个文本输入。页面加载时会向其中填充一个值。如果用户更改了文本框中的任何内容,那么我想获取更改后的值(新值)和旧值。但是调用 ELEMENT.value 它只返回更改/新值。

我如何获得旧值?

这是我的代码:

       <head>
        <script type="text/javascript">
          function onChangeTest(changeVal) {
            alert("Value is " + changeVal.value);
          }
        </script>
      </head>
      <body>
        <form>
          <div>
              <input type="text" id="test" value ="ABS" onchange="onChangeTest(this)">
          </div>
        </form>
      </body>

原文由 CFUser 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.6k
2 个回答

element.defaultValue 将为您提供原始值。

请注意,这仅适用于初始值。

如果您需要它在每次更改时都保留“旧”值,则 expando 属性或类似方法将满足您的需求

原文由 George 发布,翻译遵循 CC BY-SA 3.0 许可协议

您需要手动存储旧值。你可以用很多不同的方式存储它。您可以使用 javascript 对象来存储每个文本框的值,或者您可以使用隐藏字段(我不推荐它 - html 太重),或者您可以在文本框本身上使用 expando 属性,如下所示:

 <input type="text" onfocus="this.oldvalue = this.value;" onchange="onChangeTest(this);this.oldvalue = this.value;" />

然后你的 javascript 函数来处理这个变化看起来像这样:

     <script type="text/javascript">
    function onChangeTest(textbox) {
        alert("Value is " + textbox.value + "\n" + "Old Value is " + textbox.oldvalue);
    }
    </script>

原文由 Gabriel McAdams 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题