JQuery onChange得到以前的值

时间:2016-07-30 05:02:26

标签: javascript php jquery ajax

有没有人知道如何在此处的onChange命令中设置之前检索之前的数量值?

我目前正在使用它作为输入框。 CSS正是给我带来麻烦的enter image description here

当我更改值时,可以轻松设置新数量和新总费用。但是,当我按下时,我无法将之前的数量与新数量进行比较,以查看数量值是增加还是减少

JQuery位于 -

之下
$('#p1').on('change', function() { 
        var cost = $('#p1_price').text();
        var quantity = $('#p1').val();
        var total = cost * quantity;
        total = parseFloat(total).toFixed(2)
        $('#p1_total').text(total);
        $('#total_price').text(+$('#total_price').html() + +cost);
    });

任何人都可以对这个问题有所了解。非常感谢!

4 个答案:

答案 0 :(得分:1)

您可能需要将其存储在某处并为此而不是设置任何输入变量,您可以使用<select>下拉自身并在select标签上设置data-last-value="43",您可以在其中存储当前设置的值和此类数据可以在jQuery中访问$(this).data( "last-value" );

参考资料 - https://api.jquery.com/data/

答案 1 :(得分:1)

我在想...... 对象中的数组!

您可以在javascript对象中定义一个数组

var inputObj = 
{
    var index : -1; //When the input has nothing so far
    var values : [];
};

然后每次输入改变

$('#p1').on('change', function() { 
        var cost = $('#p1_price').text();
        var quantity = $('#p1').val();
        var total = cost * quantity;
        total = parseFloat(total).toFixed(2)
        $('#p1_total').text(total);
        $('#total_price').text(+$('#total_price').html() + +cost);

        //Add a new value to the array and refresh the index  of the current value
        inputObj.values.add(total);
        inputObj.index = inputObj.values.length + 1;
    });

每次按下向下按钮:

function pressDown()
{
    inputObj.index  = inputObj.index - 1;
    $('#p1_total').text(inputObj.values[inputObj.index]);
}

答案 2 :(得分:0)

这是我使用的,因为我专注于它存储前一个值的输入框。当它改变时,仍然设置先前的值。我原本没有想到像这样使用焦点我反过来做了但是一旦阅读这个引用它就很有意义!!

(function () {
    var previous;

    $("#p1").on('focus', function() {
        previous = this.value;


    }).change(function() {

        alert(previous);
        previous = this.value;
    });
})();

答案 3 :(得分:0)

在更改值之前,您可以将值存储在输入,JavaScript全局变量(删除变量名之前的var)或cookie中。