检测输入类型“数量”是否从之前的值增加或减少

时间:2013-10-07 19:17:26

标签: javascript jquery html

这样做有好办法吗?你能将原始值以及新值发送到jquery / javascript函数吗?将旧值保留在某个全局变量中只是感觉有点混乱。

编辑:上下文代码

<input type='number' onchange='foo(...)'>

...

<script type=text/javascript>
function foo(...){
    if(old > new){
        alert('decreased');
    }else{
        alert('increased');
    }
}
</text>

1 个答案:

答案 0 :(得分:4)

所以不要将它保存在全局变量中:

<input type="number" value="5" />

$('input[type="number"]').change(function () {
    if (this.getAttribute('value') === this.value) {
        // setting the original 'lastvalue' data property
        $(this).data('lastvalue', this.value);
    } else {
        // take whatever action you require here:
        console.log(this.value < $(this).data('lastvalue') ? 'decrement' : 'increment');
        // update the lastvalue data property here:
        $(this).data('lastvalue', this.value);
    }
}).change();

JS Fiddle demo

您也可以代替this.getAttribute('value') === this.value使用this.defaultValue === this.value(如此JS Fiddle demo),this.defaultValue是DOM-ready元素的原始值。

参考文献: