Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.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_Html - Fatal编程技术网

javascript中用于动态添加字段的计算函数

javascript中用于动态添加字段的计算函数,javascript,jquery,html,Javascript,Jquery,Html,我想为我的表格计算小计和总计 我尝试了一些Java脚本,但对我不起作用 其中一些仅用于静态表,因为我正在添加动态行,它们没有帮助 有人能帮我添加脚本吗 公式 1) 小计=金额1+金额2+…+金额(n) 2) 总计=总计-折扣 这是我的密码 函数calculateSubTotal() { var小计=+amnt.value++amnt.value; document.getElementById(“小计”)。值=isNaN(小计)?0:小计; } document.getElementById(

我想为我的表格计算小计和总计

我尝试了一些Java脚本,但对我不起作用

其中一些仅用于静态表,因为我正在添加动态行,它们没有帮助

有人能帮我添加脚本吗

公式 1) 小计=金额1+金额2+…+金额(n) 2) 总计=总计-折扣

这是我的密码

函数calculateSubTotal()
{
var小计=+amnt.value++amnt.value;
document.getElementById(“小计”)。值=isNaN(小计)?0:小计;
}
document.getElementById(“amnt”).onchange=calculateSubTotal;
document.getElementById(“amnt”).onkeyup=calculateSubTotal;
函数计算(elm){
var tr=elm;
while((tr=tr.parentElement)&&tr.tagName!='tr');
var inputs=tr.querySelectorAll('input,select');
var myBox1=输入[2]。值;
var myBox2=输入[3]。值;
var myResult=myBox1*myBox2;
输入[4]。值=myResult;
}
var count=“1”;
函数addRow(在名称中)
{
var tbody=document.getElementById(在名称中).getElementsByTagName(“tbody”)[0];
//创建行
var行=document.createElement(“TR”);
//创建表单元格1
var td1=document.createElement(“TD”)
var strHtml1=“”;
td1.innerHTML=strHtml1.replace(/!count!/g,count);
//创建表格单元格2
var td2=document.createElement(“TD”)
var strHtml2=“”;
td2.innerHTML=strHtml2.replace(/!count!/g,count);
//创建表格单元格3
var td3=document.createElement(“TD”)
var strHtml3=“”;
td3.innerHTML=strHtml3.replace(/!count!/g,count);
//创建表格单元格4
var td4=document.createElement(“TD”)
var strHtml4=“”;
td4.innerHTML=strHtml4.replace(/!count!/g,count);
//创建表格单元格5
var td5=document.createElement(“TD”)
var strHtml5=“”;
td5.innerHTML=strHtml5.replace(/!count!/g,count);
//创建表格单元格4
var td6=document.createElement(“TD”)
var strHtml6=“”;
td6.innerHTML=strHtml6.replace(/!count!/g,count);
//将数据追加到行
第3行。追加子项(td1);
第3行。追加子项(td2);
第3行:追加子项(td3);
第3行。追加子项(td4);
第3行。追加子项(td5);
第3行。追加子项(td6);
//添加到计数变量
count=parseInt(count)+1;
//将行追加到表中
tbody.appendChild(世界其他地区);
}
函数delRow()
{
var current=window.event.src元素;
//这里我们将删除该行
而((current=current.parentElement)&¤t.tagName!=“TR”);
current.parentElement.removeChild(当前);
}

提醒
发票日期
到期日
项目名称
描述
数量。
比率
数量
挑选
小计
优惠
全部的
尚欠余额
提交
重置

如果我理解正确,您要查找的代码应该如下所示:

var values = document.querySelectorAll('input.amnt'),//find all inputs  
                                                //that you need to add 
                                                //use regular dom selector 
                                                //like in css
    subtotal = 0;

for(var i = 0, ; = values.length; i<l; i++ ) {
    subtotal += values[i].value;
}
var values=document.querySelectorAll('input.amnt'),//查找所有输入
//您需要添加的
//使用常规dom选择器
//就像css中一样
小计=0;

对于(var i=0,;=values.length;i我在阅读了您的文章后整理了一些东西。这仍然需要做大量的工作,但这应该会让您走上正确的道路

我在源代码中添加了注释以逐步解释

添加更多将复制表中的内容,但这仅用于演示,表明您仍然可以使用动态元素触发事件

折扣将按价格的%扣除

$(document).on('input','.Calc',function()){
//重置总数
var合计=0;
$('.Inputs')。每个(函数(){
//重置价格。
var价格=0;
//重置判决。
var扣除=0;
//价格x数量
Price=parseFloat($(this.find(“.Qty”).val())*parseFloat($(this.find(.Price”).val());
var Percent=parseFloat($(this.find(“.Disc”).val());
//如果折扣大于0,则进行扣除。
如果(百分比>0){
//计算价格的折扣百分比。
//示例300*40/100=120
扣除额=价格*百分比/100;
//从价格中减去折扣。
价格=价格扣除额;
}
//小计,将价格添加到现有总计
总计=总计+价格;
//显示价格和节省“0英镑(节省0英镑)”
$(this.find(“span”).html(“£;”+Price+”(Save£;“+decredition+”));
});
//显示新总数。
$('Total').html('Sub-Total£;'+Total');
});
//---------克隆/附加(演示使用)
$(“#更多”)。在('click',function()上{
//这用于显示即使元素是动态的,也可以运行函数。
//(这是非常混乱的,但它表明它是有效的)
var target=document.getElementById('MyForm');
var tr=document.createElement('tr');
tr.setAttribute('class','Inputs');//编辑此
目标儿童(tr);
var td1=document.createleme