【问题标题】:How do one acquiring the previous text value that entered in an input box using jQuery如何获取使用 jQuery 在输入框中输入的上一个文本值
【发布时间】:2015-09-03 03:09:57
【问题描述】:

我需要你的帮助,

我是 jQuery 新手,我不确定如何获取之前在 3 个文本框中输入的文本。

这里是 javascript 以及 HTML 编码:

<!DOCTYPE html>

<html>

<head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

    <script type="text/javascript">
        window.onload = function() {

            $('#one, #two, #three').change(function(e) {

                alert(e.target.value)

            });


        }
    </script>

</head>

<body>

    <input type="text" id="one">

    <input type="text" id="two">

    <input type="text" id="three">

</body>

</html>

【问题讨论】:

标签: javascript jquery


【解决方案1】:

解决方案是将值缓存在对象中。这是我能想象到的最干净的方式。

var values = {};
$('#one, #two, #three').change(function(e) {

  // Get the text from cache, dynamically
  var prevText = values[e.target.id] || "";

  // Show something to the user
  alert("Modified: " + e.target.value + " | Old: " + prevText);

  // Update the text in cache
  values[e.target.id] = e.target.value;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="one">
<input type="text" id="two">
<input type="text" id="three">

或者,您可以直接将旧值存储在元素对象中,但我不建议以这种方式污染它(除非您小心操作):

$('#one, #two, #three').change(function(e) {
  var el = e.target;
  alert("Modified: " + e.target.value + " | Old: " + (el._old_value || ""));
  el._old_value = e.target.value;
});

【讨论】:

    【解决方案2】:

    您可以将旧值存储在元素的数据属性中

      $('#one, #two, #three').change(function(e) {
          alert($(e.target).data('oldVal'))  
          $(e.target).data('oldVal', e.target.value)
    })
    

    虽然初始值是未定义的,但您可以接受它或使用一些初始化代码将其设置为“”,具体取决于您的要求

    也只是一个仅供参考,因为你说你是 jQuery 新手

    $('.preserves-old-value').change(function(e) {
      alert($(e.target).data('oldVal'))  
      $(e.target).data('oldVal', e.target.value)
    })
    

    如果没有硬编码 ID,也可以正常工作。您可以将类保留旧值放在您想要的任何输入上

    https://jsfiddle.net/sgo1qmtu/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-04
      • 2015-05-03
      • 1970-01-01
      相关资源
      最近更新 更多