2016-07-29 167 views
0

我正在計算使用jquery的折扣。但我在計算正確折扣時遇到問題。我的計算給了我錯誤的結果。使用jquery計算折扣

這是我的代碼

$(document).on("change keyup blur", "#chDiscount", function() { 
 
    var amd = $('#cBalance').val(); 
 
    var disc = $('#chDiscount').val(); 
 
    if (disc != '' && amd != '') 
 
    $('#cBalance').val((parseInt(amd)) - (parseInt(disc))); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 

 
<input type="number" id="cBalance" value="1575"> 
 
<br> 
 
<input type="number" id="chDiscount">

我有cBalance輸入即1575一個預先填充值。當我在​​輸入中輸入例如500的折扣值時,它會給我1020而不是1075.並且我希望的值爲1575,因爲​​輸入中沒有值或零值。只要我在chDiscount輸入中輸入新值,計算就會不斷增加cBalance值,但它不會從默認值增加。 我的exptected輸出:當我輸入500時,我希望默認值1575爲1075.如果我刪除了我輸入的1000,我想在cBalance中恢復默認值1575。如果我在chDiscount中輸入5,默認值將變爲1570,如果我點擊退格刪除,它將再次變爲1575。 我該如何做到這一點?我哪裏做錯了?請幫忙。

+0

以及logicly,因爲它首先得到5,然後50隨後500和留給你的是 –

回答

0

$(document).on("change keyup blur", "#chDiscount", function() { 
 
    var amd = $('#cBalance').val(); 
 
    var disc = $('#chDiscount').val(); 
 
    if (disc != '' && amd != '') { 
 
    $('#result').val((parseInt(amd)) - (parseInt(disc))); 
 
    }else{ 
 
    $('#result').val(parseInt(amd)); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 

 
<input type="number" id="cBalance" value="1575"> 
 
<br> 
 
<input type="number" id="chDiscount"> 
 
<br> 
 
<input type="number" id="result">

我相加的結果字段,因爲否則你不能指定AMD

+0

幾乎是正確的。當第二個輸入中沒有數據時。它留給我1570. –

+0

這是正確的,只是不刷新,讓我照顧,也太:) –

+0

在你的片段,如果我輸入500,它給了我正確的結果。但是,如果我按下退格鍵而沒有任何價值,即只是空白。它留給我1570而不是1575.如果你能解決它,我會很感激。 –

0

正如上面提到的代碼只是減去的主要價值。這裏是精確解

<input type="number" id="cBalance" value="1575"> <br> 
    <input type="number" id="chDiscount"> <br> 
    <input type="number" id="result"> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 

$(document).on("change keyup blur", "#chDiscount", function() { 
    var main = $('#cBalance').val(); 
    var disc = $('#chDiscount').val(); 
    var dec = (disc/100).toFixed(2); //its convert 10 into 0.10 
var mult = main*dec; // gives the value for subtract from main value 
var discont = main-mult; 
    $('#result').val(discont); 
}); 

JSFIDDLE