2016-07-29 93 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