Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用“获取总计”和“折扣”添加或删除行_Javascript_Jquery - Fatal编程技术网

Javascript 使用“获取总计”和“折扣”添加或删除行

Javascript 使用“获取总计”和“折扣”添加或删除行,javascript,jquery,Javascript,Jquery,添加/删除行示例已成功。我有折扣问题。如何使用此示例设置折扣 添加/删除行示例已成功。我有折扣问题。如何使用此示例设置折扣 这里的例子 $(document).ready(function () { $(".add").click(function () { var length = $('.one').length; var cloned = $(this).closest('.one').clone(true); cloned.appendTo("#mainDiv").fi

添加/删除行示例已成功。我有折扣问题。如何使用此示例设置折扣

添加/删除行示例已成功。我有折扣问题。如何使用此示例设置折扣

这里的例子

$(document).ready(function () {
$(".add").click(function () {
var length = $('.one').length;
var cloned = $(this).closest('.one').clone(true);        
cloned.appendTo("#mainDiv").find('.sno').val(length + 1);
cloned.find(':input:not(".sno")').val(" ");

cloned.find("input[onKeyUp*='showHint']").attr('onKeyUp', 'showHint' + (length+1)+'(this.value)');
cloned.find("input[id*='item_name']").attr('id', 'item_name' + (length+1));

var parent = $(this).closest('.one');
calculate(parent);
});
$('.delete').click(function () {
if($('.one').length==1){
alert("This is default row and can't deleted");
return false;
}
var parent = $(this).closest('.one');
$(this).parents(".one").remove();
calculate(parent);
// reset serial numbers again
$('.one').each(function(index, item) {
$(this).find('.sno').val(index+1);

$(this).find("input[onKeyUp*='showHint']").attr('onKeyUp', 'showHint' + (index+1)+'(this.value)');
$(this).find("input[id*='item_name']").attr('id', 'item_name' + (index+1));
})
});
});

$(document).on('keyup', '.quantity, .net_rate, .Gross_Rate, .Discount_rate', function () {
var parent = $(this).closest('.one');
calculate(parent);
})


function calculate(e){
var q = +$(e).find('.quantity').val();
var n = +$(e).find('.net_rate').val();
var t = +$(e).find('.tax').val();
var d = +$(e).find('.Discount_rate').val();
var sum = 0;


$(e).find('.Gross_Rate').val(g=q*n*t/100);
$(e).find('.total').val((q*n)+g);
$(e).find('.Discount_rate').val(k=g-d);

$('.total').each(function(i,e){
sum += +$(e).val();    
});
$('#Grand').val(sum);
};


<div id="mainDiv">
<div class="one">
<div class="row">

<div class="input-field col s1">
<input type="text" class="sno" name="Sr[]" value="1"  readonly>
<label for="Sr" >Sr</label>
</div>
<div class="input-field col s1">
<input type="text" class="quantity"  name="Quantity[]" value=" ">
<label for="Quantity" >Quantity</label>
</div>
<div class="input-field col s1">
<input type="text" class="net_rate" name="net_rate[]" value=" ">
<label for="net_rate" >Net Rate</label>
</div>
<div class="input-field col s1">
<input type="text" class="tax" name="tax[]" value=" ">
<label for="tax" >tax</label>
</div>
<div class="input-field col s1">
<input type="text" class="Gross_Rate" name="gross_rate[]" value=" " readonly >
<label for="Gross Rate" >Gross Rate</label>
</div>
<div class="input-field col s1">
<input type="text" class="total" name="total[]" value=" " readonly>
<label for="total" >total</label>
</div>
<div class="input-field col s1 add">
<a href="#">Add</a>
</div>

<div class="input-field col s1 delete">
<a href="#"> Remove</a>
</div>
</div>
</div>
</div>

<div class="row">
<div class="input-field col s6"></div>

<div class="input-field col s1">
<input type="text" name="Discount_rate" id="Discount_rate" class="Discount_rate" value=" ">
<label for="Discount_rate" >Discount</label>
</div>

<div class="input-field col s1">
<input type="text" name="Discount_tax" id="Discount_tax" class="Discount_tax"  value=" ">
<label for="Discount_tax" >Discount(%)</label>
</div>

<div class="input-field col s2">
<input type="text" name="Grand_total" id="Grand" class="Grand" value=" " readonly>
<label for="Grand_total" >Grand Total</label>
</div>
</div>
$(文档).ready(函数(){
$(“.add”)。单击(函数(){
变量长度=$('.one').length;
var cloned=$(this).clonest('.one').clone(true);
克隆的.appendTo(“#mainDiv”).find('.sno').val(长度+1);
cloned.find(':input:not(“.sno”).val(“”);
cloned.find(“input[onKeyUp*='showHint']”).attr('onKeyUp','showHint'+(length+1)+'(this.value));
cloned.find(“输入[id*='item_name']”).attr('id','item_name'+(长度+1));
var parent=$(this).closest('.one');
计算(父母);
});
$('.delete')。单击(函数(){
如果($('.one')。长度==1){
警报(“这是默认行,不能删除”);
返回false;
}
var parent=$(this).closest('.one');
$(this.parents(“.one”).remove();
计算(父母);
//重新设置序列号
$('.one')。每个(函数(索引,项){
$(this.find('.sno').val(索引+1);
$(this.find(“input[onKeyUp*='showHint']”)attr('onKeyUp','showHint'+(index+1)+'(this.value)');
$(this).find(“输入[id*='item_name']).attr('id','item_name'+(索引+1));
})
});
});
$(文档).on('keyup',')。数量、.net\u比率、.Gross\u比率、.Discount\u比率',函数(){
var parent=$(this).closest('.one');
计算(父母);
})
函数计算(e){
var q=+$(e).find('.quantity').val();
var n=+$(e).find('.net_rate').val();
var t=+$(e).find('.tax').val();
var d=+$(e).find('.Discount_rate').val();
var总和=0;
$(e).find('.Gross_Rate').val(g=q*n*t/100);
$(e).find('.total').val((q*n)+g);
$(e).find('.Discount_rate').val(k=g-d);
$('.total')。每个(函数(即,e){
sum+=+$(e).val();
});
元整(元整).val(总和);;
};
Sr
量
净利率
税
毛利率
全部的
优惠
折扣(%)
总计

我不确定自己是否100%理解这个问题。但我认为你需要改变最后一行:

$('#Grand').val(sum);
为此:

$('.Discount_tax').val($('.Discount_rate').val()/sum*100);
$('#Grand').val(sum-$('.Discount_rate').val());

根据您的评论:


亚历克斯·托马斯先生,我想打两种折扣,一种是任何金额的折扣,另一种是现金折扣 折扣(%)这两种不同的条件尼利斯

(1) 我加了折扣率,然后折扣税为空。并补充说 折扣税然后折扣率为空…——尼利斯

我已经准备好了解决方案

我先检查
折扣率
,如果它不是一个数字,然后检查
折扣税
以计算折扣

    var disc = $('.Discount_rate').val();
    if(parseInt(disc) > 0)
    {
        $('.Discount_tax').val('');
        $('#Grand').val(sum-$('.Discount_rate').val());
    }
    else
    {
        $('.Discount_rate').val('');
        disc = $('.Discount_tax').val();
        if(parseInt(disc) > 0)
            $('#Grand').val(sum-(parseInt(disc)*sum/100));
        else
            $('#Grand').val(sum);
    }

您应该将javascript更改为:
$(e).find('.Discount_rate').val()
$('.Discount_rate').val()在折扣和折扣(%)中混淆。。。在清单上写一些计算说明。Alex Thomas我想要2种类型的折扣(1)任何金额或(2)折扣(%)这两种不同的条件。(1)我添加了折扣率,然后折扣税为空。加上折扣税,然后折扣率为空…Alex Thomas如上面两条评论所说,我是…谢谢我帮助Sac先生