bma pachuau
bma pachuau

Reputation: 33

Calculate discount using jquery

I am calculating Discount using jquery. But I have a problem calculating the correct discount. My calculation gives me wrong result.

Here is my code

$(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">

I have a prepopulated value for cBalance input i.e.,1575. When I type discount value for example 500 in chDiscount input, it gives me 1020 and not 1075. And I want the value 1575 to be 1575 when there is no value or zero value in the chDiscount input. And the caculation keeps incrementing the cBalance value whenever I type new value in the chDiscount input, it does not increment from the default value. My exptected output: When I type 500, I want the default value 1575 to be 1075. And if I delete the 1000 that I type, I want back the default value 1575 in cBalance. And If I type 5 in chDiscount, the default value would become 1570 and if I hit backspace to delete, it would become 1575 again. How can I achieve this? Where did I go wrong? Please help.

Upvotes: 1

Views: 7261

Answers (2)

Siddhartha esunuri
Siddhartha esunuri

Reputation: 1144

As above mention code is just subtracting the main value. here is exact solution

<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

Upvotes: 1

Marko Mackic
Marko Mackic

Reputation: 2333

$(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">

I added result field because otherwise you couldn't specify amd

Upvotes: 1

Related Questions