Javascript 如何获得更改输入值的差异?

Javascript 如何获得更改输入值的差异?,javascript,jquery,Javascript,Jquery,如何获得旧值和更改值之间的差异 $('input[name ="refresh"]').on("change paste keyup", function() { ??? }); 因此,这段代码(来自另一个问题)检测到输入变化,输入本身只是数字,用户设置输入值从10到25,如何在不预加载默认值的情况下获得新旧值之间的差异?顺便说一下,默认值大于0。读取元素的默认值,它将具有初始值 $('input')。在(“input”,function()上)

如何获得旧值和更改值之间的差异

$('input[name ="refresh"]').on("change paste keyup", function() {
   ???
});

因此,这段代码(来自另一个问题)检测到输入变化,输入本身只是数字,用户设置输入值从10到25,如何在不预加载默认值的情况下获得新旧值之间的差异?顺便说一下,默认值大于0。

读取元素的默认值,它将具有初始值

$('input')。在(“input”,function()上){
var defaultValue=+this.defaultValue;
var currentValue=+this.value;
log(“defaultValue”,currentValue,defaultValue,currentValue-defaultValue);
});
$('input')。在('change',function()上{
var lastValue=this.dataset.last | | this.defaultValue;
var currentValue=+this.value;
this.dataset.last=当前值;
log(“最后一个值”、currentValue、lastValue、currentValue-lastValue);
});

您可以使用元素的
数据集
属性存储以前的值。只需包装您的侦听器即可访问并更新相应的属性

constvaluechangewrapper=(e,func)=>{
常数
currVal=e.target.value,
prevVal=e.target.dataset.previousValue;
func(currVal、prevVal、e);
e、 target.dataset.previousValue=e.target.value;
}
常量changeListener=(当前、上一个、e)=>{
log(`Id:${e.target.Id},Curr:${Curr},Prev:${Prev}`);
};
constWrappedChangeListener=e=>valueChangeWrapper(e,changeListener);
document.querySelectorAll('.listen').forEach(el=>{
el.addEventListener('change',wrappedChangeListener);
el.addEventListener(“粘贴”,wrappedChangeListener);
el.addEventListener(“键控”,wrappedChangeListener);
});
.as控制台包装{最大高度:4em!重要;}
身体{
显示:网格;
网格自动流:行;
网格行间距:0.5em;
填充:0.25em;
}


“未预加载默认值”不确定这是什么意思“预加载默认值”意味着我手动设置了一个带有输入默认值的变量(如页面加载后),因此您没有在页面加载时设置值??我们怎么知道第一个值是什么?这就是问题所在,更改后是否有可能获得前一个值?OP不希望每个输入更改之间存在差异,而不仅仅是初始值吗?还是我误解了?是的,这就是我一直想说的。谢谢大家!@evolutionxbox I根据原始措辞(默认值)回答了这个问题。