如何解决jQuery我有发票计算部分,它无法正常工作
我正在尝试在表单中实现折扣值。 我进入 我的表单(如果我输入了值)会增加+2值
|QTY GST(TAX) DISC RATE AMOUNT
| 1 18% 10% 100$ 108$| // its was wrong Amount Answer
正确答案106.20 $
但是我错了如何减慢对我的帮助
$('tbody').delegate('.quantity,.price,.gst,.dsc','keyup',function() {
var tr = $(this).parent().parent();
var quantity = tr.find('.quantity').val();
var price = tr.find('.price').val();
var gst = tr.find('.gst').val();
var dcs = tr.find('.dcs').val();
var totalamountgst = (quantity * price * gst) / 100;
var totalamountdcs = (quantity * price * dcs) / 100;
var totalamounts = (quantity * price + totalamountgst);
var totalamount = (totalamounts - totalamountdcs);
tr.find('.totalamount').val(totalamount);
total();
});
function total() {
var total = 0;
$('.totalamount').each(function(i,e) {
var totalamount = $(this).val() - 0;
total += totalamount;
});
$('.total').val(total + ".00");
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tbody>
<tr>
<td> <input style="text-align:center;" type="text" class="text-danger input-lg form-control quantity" name="qty[]" id="validationServer01" placeholder="QTY" value="" required pattern="[1-2-3-4-3-5-6-7-8-9-10-12]+" numbers="onlynumbers" autocomplete="off"></td>
<td> <input style="text-align:center;" type="text" class="text-danger input-lg form-control gst " name="gst_amount[]" id="validationServer01" placeholder="GST" value="" required pattern="[1-2-3-4-3-5-6-7-8-9-10-12]+" numbers="onlynumbers" autocomplete="off"></td>
<td> <input style="text-align:center;" type="text" class="text-danger input-lg form-control dcs " name="dcs_amount[]" id="validationServer01" placeholder="DCS" value="" required pattern="[1-2-3-4-3-5-6-7-8-9-10-12]+" numbers="onlynumbers" autocomplete="off"></td>
<td> <input style="text-align:center;" type="number" class="text-danger input-lg form-control price" name="purchase_rate[]" id="validationServer01" placeholder="RATE" value="" required pattern="" numbers="" autocomplete="off"></td>
<td> <input style="text-align:center;" type="text" class="text-danger input-lg form-control totalamount" name="" id="validationServer01" placeholder="AMOUNT" value="" required pattern="[1-2-3-4-3-5-6-7-8-9-10-12]+" numbers="onlynumbers" disabled></td>
</tr>
</tbody>
</table>
解决方法
在计算税额之前必须应用所有折扣,因此:
$('tbody').delegate('.quantity,.price,.gst,.dsc','keyup',function() {
var tr = $(this).parent().parent();
var quantity = tr.find('.quantity').val();
var price = tr.find('.price').val();
var gst = tr.find('.gst').val();
var dcs = tr.find('.dcs').val();
var totalprice = quantity * price;
var totaldiscount = (totalprice * dcs) / 100;
var totalvatable = totalprice - totaldiscount;
var totalvat = (totalvatable * gst) / 100;
var totalamount = totalvatable + totalvat;
tr.find('.totalamount').val(totalamount);
total();
});
function total() {
var total = 0;
$('.totalamount').each(function(i,e) {
var totalamount = $(this).val() - 0;
total += totalamount;
});
$('.total').val(total + ".00");
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tbody>
<tr>
<td> <input style="text-align:center;" type="text" class="text-danger input-lg form-control quantity" name="qty[]" id="validationServer01" placeholder="QTY" value="" required pattern="[1-2-3-4-3-5-6-7-8-9-10-12]+" numbers="onlynumbers" autocomplete="off"></td>
<td> <input style="text-align:center;" type="text" class="text-danger input-lg form-control gst " name="gst_amount[]" id="validationServer01" placeholder="GST" value="" required pattern="[1-2-3-4-3-5-6-7-8-9-10-12]+" numbers="onlynumbers" autocomplete="off"></td>
<td> <input style="text-align:center;" type="text" class="text-danger input-lg form-control dcs " name="dcs_amount[]" id="validationServer01" placeholder="DCS" value="" required pattern="[1-2-3-4-3-5-6-7-8-9-10-12]+" numbers="onlynumbers" autocomplete="off"></td>
<td> <input style="text-align:center;" type="number" class="text-danger input-lg form-control price" name="purchase_rate[]" id="validationServer01" placeholder="RATE" value="" required pattern="" numbers="" autocomplete="off"></td>
<td> <input style="text-align:center;" type="text" class="text-danger input-lg form-control totalamount" name="" id="validationServer01" placeholder="AMOUNT" value="" required pattern="[1-2-3-4-3-5-6-7-8-9-10-12]+" numbers="onlynumbers" disabled></td>
</tr>
</tbody>
</table>
,
您必须首先减去dc,然后在其中添加gst。最好在值上使用parseInt
。
$('tbody').delegate('.quantity,function() {
var tr = $(this).parent().parent();
var quantity = parseFloat(tr.find('.quantity').val());
var price = parseFloat(tr.find('.price').val());
var gst = parseFloat(tr.find('.gst').val());
var dcs = parseFloat(tr.find('.dcs').val());
var totalamount = quantity*price*(100-dcs)/100*(100+gst)/100;
tr.find('.totalamount').val(totalamount);
total();
});
function total() {
var total = 0;
$('.totalamount').each(function(i,e) {
var totalamount = $(this).val() - 0;
total += totalamount;
});
$('.total').val(total + ".00");
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tbody>
<tr>
<td> <input style="text-align:center;" type="text" class="text-danger input-lg form-control quantity" name="qty[]" id="validationServer01" placeholder="QTY" value="" required pattern="[1-2-3-4-3-5-6-7-8-9-10-12]+" numbers="onlynumbers" autocomplete="off"></td>
<td> <input style="text-align:center;" type="text" class="text-danger input-lg form-control gst " name="gst_amount[]" id="validationServer01" placeholder="GST" value="" required pattern="[1-2-3-4-3-5-6-7-8-9-10-12]+" numbers="onlynumbers" autocomplete="off"></td>
<td> <input style="text-align:center;" type="text" class="text-danger input-lg form-control dcs " name="dcs_amount[]" id="validationServer01" placeholder="DCS" value="" required pattern="[1-2-3-4-3-5-6-7-8-9-10-12]+" numbers="onlynumbers" autocomplete="off"></td>
<td> <input style="text-align:center;" type="number" class="text-danger input-lg form-control price" name="purchase_rate[]" id="validationServer01" placeholder="RATE" value="" required pattern="" numbers="" autocomplete="off"></td>
<td> <input style="text-align:center;" type="text" class="text-danger input-lg form-control totalamount" name="" id="validationServer01" placeholder="AMOUNT" value="" required pattern="[1-2-3-4-3-5-6-7-8-9-10-12]+" numbers="onlynumbers" disabled></td>
</tr>
</tbody>
</table>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。