2016-07-29 20 views
0

Ich berechne Rabatt mit jquery. Aber ich habe ein Problem, den korrekten Rabatt zu berechnen. Meine Berechnung gibt mir ein falsches Ergebnis.Berechnen Rabatt mit jquery

Hier ist mein 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">

Ich habe ein vorbelegt Wert für cBalance Eingang heißt 1575. Wenn ich einen Rabattwert für beispielsweise 500 in chDiscount eingeben, gibt es mir 1020 und nicht 1075. Und ich möchte den Wert 15751575 sein, wenn es keinen Wert oder Nullwert im chDiscount Eingang gibt. Und die Berechnung erhöht den cBalance-Wert immer dann, wenn ich einen neuen Wert in die chDiscount-Eingabe eingabe, der Wert wird nicht vom Standardwert erhöht. Meine exportierte Ausgabe: Wenn ich 500 gebe, möchte ich, dass der Standardwert 1575 1075 ist. Und wenn ich die 1000, die ich eintippe, lösche, möchte ich den Standardwert 1575 in cBalance zurückgeben. Und wenn ich 5 in chDiscount tippe, würde der Standardwert 1570 werden und wenn ich die Rücktaste zum Löschen drücke, würde es wieder 1575 werden. Wie kann ich das erreichen? Was habe ich falsch gemacht? Bitte helfen Sie.

+0

gut logicly, weil es zuerst 5 bekommt dann 50, dann 500 und du bist mit diesen –

Antwort

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 Ergebnisfeld hinzugefügt, da Sie sonst nicht amd

+0

Fast richtig verlassen. Wenn in der zweiten Eingabe keine Daten vorhanden sind. es lässt mich mit 1570. –

+0

Es ist richtig, nur nicht zu aktualisieren, lassen Sie mich auch darum kümmern :) –

+0

In Ihrem Schnipsel, wenn ich 500 eingeben, gibt es mir korrekte Ergebnisse. Aber wenn ich die Rücktaste drücke und links ohne Wert, d. H. Einfach leer. es lässt mich mit 1570 und nicht 1575 zurück. Wenn Sie es beheben können, wäre ich dankbar. –

0

Wie oben erwähnt Code angeben könnte, ist einfach der Hauptwert subtrahiert wird. hier ist die genaue Lösung

<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