jQuery检查输入值是否随变化而增加/减少
jQuery check if input value increases/decreases on change
我有一个输入类型number
<input type="number" value="5" id="nmovimentos"/>
当值增加或减少时,我想做一个特定的动作(警报为一个简单的例子)。
我有以下jQuery代码:$(document).ready(function(){
var oldValue = $("#nmovimentos").val();
$("#nmovimentos").change(function(){
var newValue = $(this).val();
if (newValue > oldValue)
alert("increase!");
else
alert("decrease!");
});
});
但是它不能工作,因为它不能检测oldValue变量。有什么线索吗?非常感谢!
Jsfiddle
你可以利用一些属性每个htmlputelement必须存储以前的值,例如defaultValue
。在本例中,您节省了几行代码,并使代码更简洁:
$("#nmovimentos").change(function () {
var direction = this.defaultValue < this.value
this.defaultValue = this.value;
if (direction) alert("increase!");
else alert("decrease!");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="number" value="5" id="nmovimentos" />
更新处理程序中的oldValue
$(document).ready(function() {
var oldValue = $("#nmovimentos").val();
$("#nmovimentos").change(function() {
var newValue = $(this).val();
if (newValue > oldValue)
console.log("increase!");
else
console.log("decrease!");
oldValue = newValue;
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<input type="number" value="5" id="nmovimentos" />
或,使用data-*
属性来跟踪
$(document).ready(function() {
$("#nmovimentos").attr('data-prev-val', $("#nmovimentos").val());
$("#nmovimentos").change(function() {
var newValue = $(this).val();
if (newValue > $(this).attr('data-prev-val'))
console.log("increase!");
else
console.log("decrease!");
$("#nmovimentos").attr('data-prev-val', newValue);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<input type="number" value="5" id="nmovimentos" />
您必须首先将旧值保存在某个地方。jQuery.data()
是很方便的。
$(document).ready(function(){
var nmovimentos = $("#nmovimentos");
var oldValue = nmovimentos.val();
nmovimentos.data("oldValue", oldValue);
$("#nmovimentos").change(function(){
var oldValue = $(this).data("oldValue");
var newValue = $(this).val();
if (newValue > oldValue)
alert("increase!");
else
alert("decrease!");
$(this).data("oldValue", newValue);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="number" value="5" id="nmovimentos"/>
相关文章:
- 如何通过ajax增加/减少PHP变量值并重新加载函数
- 函数比javascript中的步进器增加/减少更多
- 增加/减少 URL 路径名单击
- 如何在 AngularJS 中动态增加/减少段落元素的高度
- 函数在Javascript中不起作用(增加/减少按钮)
- 使用javascript和按钮将整数增加/减少50
- 使用 jQuery/JavaScript 单击时增加/减少 CSS 宽度
- 如何在弹出显示和附加由 AJAX 调用返回的数据后增加/减少 FancyBox2 弹出窗口大小
- jQuery-增加/减少跨度值
- 增加/减少页面上所有元素字体大小的有效方法
- 增加/减少滚动时的元素填充
- 高位图表增加/减少输入数据
- 如何设置与增加/减少值相关的仪表动画
- 用于在屏幕上增加/减少值的按钮
- 设置间隔以增量增加/减少图像宽度
- 增加/减少跨度的数值,并在jQuery中向上/向下单击任一id时删除链接的类
- 如何使Bootstrap jQuery数据表响应和增加/减少滚动条高度根据页面的大小
- Jquery通过向上/向下箭头键盘增加/减少输入文本中的数字
- 如何增加/减少'选择'用户想要选择一个选项后的选项宽度
- Javascript:增加/减少目标数