You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用jQuery获取输入框旧值与新值?现有代码遇问题求助

解决获取输入框旧值与当前值的问题

嘿,我来帮你搞定这个问题!你现在拿不到旧值的核心原因是从来没有给输入框初始化过data-val这个数据属性,所以第一次触发change事件时,$(this).data('val')自然是undefined。下面给你一套完整的解决方案:

核心思路

我们需要先在页面加载完成时,把输入框的初始值存入它的data-val属性;之后每次change事件触发时,先取出旧值,再把当前值更新到data-val里,这样就能持续追踪新旧值的变化了。

完整代码示例

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label> License Key</label>
<input id='licensekey' type='text' class='input'>

<script>
// 页面加载完成后,初始化输入框的旧值
$(document).ready(function() {
  $('#licensekey').data('val', $('#licensekey').val());
});

$(document).on('change', '#licensekey', function () { 
  var prev = $(this).data('val');
  var current = $(this).val(); 
  
  console.log("Prev value " + prev); 
  console.log("New value " + current); 
  
  // 更新data-val为当前值,作为下一次触发事件时的旧值
  $(this).data('val', current);
}); 
</script>

额外优化建议

如果你的输入框需要追踪实时输入的变化(比如用户打字时就更新值),可以把change事件换成input事件,这样能覆盖更多场景;另外,你也可以直接在HTML标签里初始化data-val属性,比如<input id='licensekey' type='text' class='input' data-val=''>,再通过JS赋值,效果是一致的。

内容的提问来源于stack exchange,提问作者devs1994

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 18:47:34