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

标签 javascript html validation

我有一个文本输入。页面加载时会向其中填充一个值。如果用户更改了文本框中的任何内容,那么我想获取更改后的值(新值)和旧值。但是调用 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>

最佳答案

您需要手动存储旧值。你可以用很多不同的方式存储它。您可以使用 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>

关于javascript - 如何使用文本框中的 onchange() 事件获取旧值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1909992/

相关文章:

javascript - 单击 anchor 和图像映射导致页面不必要地移动

jQuery-validate 自定义规则导致其他无效字段被忽略

validation - CSS 验证未验证

c# - 传入 XML 的验证 - 我是否应该同时使用 XSD 文件和代码验证

javascript - 根据字符串列表数组动态查找indexof

javascript - 在下拉列表的第一行添加自定义文本

javascript - 让 jquery 插件 (sidr) 与 Rails 一起使用

javascript - 返回树中序遍历结果

html - 如何编码这一部分,知道吗?

html - 具有最大宽度的 div 的跨浏览器固定纵横比