2016-07-29 1 views
0

Je calcule Discount en utilisant jquery. Mais j'ai un problème pour calculer la remise correcte. Mon calcul me donne un mauvais résultat.Calculer rabais en utilisant jquery

Voici mon 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">

j'ai une valeur prérempli pour l'entrée cBalance à savoir 1575. Lorsque je tape la valeur de réduction par exemple 500 dans chDiscount entrée, il me donne 1020 et pas 1075. Et je veux que la valeur 1575 soit 1575 quand il n'y a pas de valeur ou de valeur nulle dans l'entrée chDiscount. Et la caculation continue d'incrémenter la valeur de cBalance chaque fois que je tape une nouvelle valeur dans l'entrée chDiscount, elle ne s'incrémente pas de la valeur par défaut. Ma sortie exptected: Quand je tape 500, je veux que la valeur par défaut 1575 soit 1075. Et si je supprime les 1000 que je tape, je veux revenir à la valeur par défaut 1575 dans cBalance. Et si je tape 5 dans chDiscount, la valeur par défaut deviendrait 1570 et si je tape en arrière pour supprimer, il deviendrait 1575 à nouveau. Comment puis-je y parvenir? Où est-ce que je me suis trompé? S'il vous plaît aider.

+0

logicly, car il obtient d'abord 5, puis 50 puis 500 et vous vous retrouvez avec ce –

Répondre

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

I ajouté champ de résultat parce que sinon vous ne pourriez pas préciser amd

+0

presque correct. Quand il n'y a pas de données dans la deuxième entrée. il me laisse avec 1570. –

+0

Il est correct ne rafraîchit pas, laissez-moi prendre soin de cela aussi :) –

+0

Dans votre extrait, Si je tape 500, il me donne un résultat correct. Mais si j'appuie sur le retour arrière et que je n'ai pas de valeur, c'est-à-dire rien. il me laisse avec 1570 et non 1575. Si vous pouvez le réparer, je serais reconnaissant. –

0

Comme ci-dessus code mentionner est juste soustrayant la valeur principale. voici la solution exacte

<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

bien