2016-07-30 33 views
2

有沒有人知道我可以在onChange命令中設置之前檢索之前的數量值?JQuery 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); 
    }); 

任何人都可以擺脫有關此事的一些信息。將不勝感激!

+0

把它保存在'change'處理程序之前的一個變量中...... – Rayon

+0

除了我有多個產品,如果我這樣做,我將不得不像60個變量那樣設置。你的意思是剛好在上面嗎?我的JQuery知識只是最近的。所以請原諒我的無知:) –

+0

有沒有辦法在每次按下向下箭頭時調用函數? – ggderas

回答

0

您可能需要將其存儲的地方,併爲而不是設置任何輸入變量,你可以使用<select>下拉本身和選擇的標籤,您可以存儲您的當前設置值,這些數據可以被訪問jQuery中像$(this).data("last-value");設置data-last-value="43"

Ref.for數據 - https://api.jquery.com/data/

+0

當然有更好的方法。如果我使用了更多的AJAX,會發生什麼情況。如果我將總數設置爲AJAX文件,我可以從ajax文件返回文件並更新當前頁面? –

+0

你的意思是從ajax文件返回一個文件?是的,你總是可以通過jQuery和ajax編輯當前頁面內容 – Rupal

+0

我的意思是一個值*** –

0

這是我用過的,因爲我專注於它存儲先前值的輸入框。當它改變之前的值仍然被設置。我原本並沒有想到像這樣使用焦點,我反其道而行,但是一旦閱讀這個報價,它就有很多的意義!

(function() { 
    var previous; 

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


    }).change(function() { 

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

我在想... Array in a object!

你可以在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]); 
} 
0

在更改值之前,可以將值存儲在輸入中的JavaScri中pt全局變量(刪除變量名稱之前的變量)或cookie中。

相關問題