2017-07-06 132 views
0

如何讓文本框的前值jQuery中的更改事件

$(".whitebox").on('change', function() { 
 
     var previousAmt = $(this).data("old"); // i want previous value 
 
     var id = this.id; 
 
     var slpitid = id.split("_"); 
 

 
     var checkboxid = "#chck_" + slpitid[0]; 
 
     if ($(checkboxid).is(':checked')) { 
 
      var tipFlag = true; 
 
     } 
 
     else { 
 
      var tipFlag = false; 
 
     } 
 

 
     if (tipFlag === true) 
 
     { 
 
      $("#amounttipchange").modal('show'); 
 
     } 
 
     //alert(previousAmount); 
 
    });

我要存儲更改事件前值我怎樣才能jQuery的執行我不能夠存儲使用$值(此)。數據( 「舊」);任何幫助將不勝感激

+0

請將您'HTML'代碼太 – Ionut

+0

'我是無法使用$(this).data(「old」)存儲值 - 爲什麼? –

+0

previousAmt = $(this).data(「old」)output is emtpty – user6885473

回答

1

你幾乎得到這個權利,但你忘了更新在代碼中data-old,下面是一個例子,jsbin

$(".whitebox").on('change', function (event) { 
    // on first change will be empty string 
    // as no previous value was set 
    var oldValue = event.target.dataset.old; 
    console.log('old value', oldValue); 

    // your code here 

    // at the end assign new value to data-old attribute 
    $(this).data('old', event.target.value); 
    console.log(event.target.value); 
}); 

http://jsbin.com/jasaqiwuwo/

0

var prevVal = $('input').val(); //init val 
 
var valuesHistory = [prevVal]; 
 
$('input').data('prevData', prevVal); 
 

 
$('input').on('change', function() { 
 
    console.log('prev value from data: ', $(this).data('prevData')); 
 
    console.log('prev value from var: ', prevVal); 
 
    console.log('log: ', valuesHistory); 
 
    valuesHistory.push($('input').val()); 
 
    $('input').data('prevData', $('input').val()); 
 
    prevVal = $(this).val(); 
 
}); 
 
// you can also get the prev value, like that valuesHistory[valuesHistory.length-2];
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text">

0

試試這個:

$("#checkboxid").on('click',function(){ 
    $(this).data('old',$(this).val()); 
}); 

然後用你的改變事件。

相關問題