2016-07-30 24 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>ドロップを使用することができますし、あなたの現在の設定値を格納することができますし、そのようなデータが$(this).data("last-value");ようにjQueryにアクセスすることができselectタグに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

私は考えています... オブジェクト内の配列!

あなたが配列の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グローバル変数(変数名の前にvarを削除する)またはクッキーに保存します。

関連する問題