Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.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 如何自动对HTML表中每行的输入值框求和_Javascript - Fatal编程技术网

Javascript 如何自动对HTML表中每行的输入值框求和

Javascript 如何自动对HTML表中每行的输入值框求和,javascript,Javascript,我有一个HTML表格,其中有一列输入框(数量、价格、折扣和总额)。我制作了一个JS函数,可以根据需要添加任意多的行。我想使每行的“总计”列自动显示此公式的值: (数量*价格)-(数量*价格*(折扣/100)) 我尝试了很多JavaScript代码,但我一直无法让任何东西正常工作 HTML: Q-ty 价格,$ 折扣,% 总计,$(不含税) 添加行 Javascript: function addRow() { var table = document.getElementById("

我有一个HTML表格,其中有一列输入框(数量、价格、折扣和总额)。我制作了一个JS函数,可以根据需要添加任意多的行。我想使每行的“总计”列自动显示此公式的值:

(数量*价格)-(数量*价格*(折扣/100))

我尝试了很多JavaScript代码,但我一直无法让任何东西正常工作

HTML:


Q
-ty 价格,
$ 折扣,
% 总计,$
(不含税) 添加行
Javascript:

function addRow() {
    var table = document.getElementById("myTable");
    var row = table.insertRow();
    var cell1 = row.insertCell(0);
    var cell2 = row.insertCell(1);
    var cell3 = row.insertCell(2);
    var cell4 = row.insertCell(3);
    var cell5 = row.insertCell(4);
    cell1.innerHTML = "<input class=\"Left\" size=\"100\" type=\"text\" name=\"Description\">";
    cell2.innerHTML = "<div align=\"center\"><input type=\"number\" name=\"quantity\" min=\"1\" max=\"99\"></div>";
    cell3.innerHTML = "<div align=\"center\"><input type=\"number\" name=\"summ\"  min=\"0\" max=\"999999\"></div>";
    cell4.innerHTML = "<div align=\"center\"><input type=\"number\" name=\"rate\"  min=\"0\" max=\"100\"></div>";
    cell5.innerHTML = "<div align=\"center\"><input type=\"number\" name=\"total\" min=\"0\" max=\"99999999\"></div>";
}
函数addRow(){
var table=document.getElementById(“myTable”);
var row=table.insertRow();
var cell1=行插入单元格(0);
var cell2=行插入单元格(1);
var cell3=行插入单元格(2);
var cell4=行插入单元格(3);
var cell5=行插入单元格(4);
cell1.innerHTML=“”;
cell2.innerHTML=“”;
cell3.innerHTML=“”;
cell4.innerHTML=“”;
cell5.innerHTML=“”;
}

没有什么不同的例子。我从js代码中删除了
div

函数计算(id){
var row=id.parentNode.parentNode;
var quant=row.cells[1]。getElementsByTagName('input')[0]。值;
var price=row.cells[2]。getElementsByTagName('input')[0]。值;
var disc=row.cells[3]。getElementsByTagName('input')[0]。值;
如果(disc==null | | disc==''){
res=parseFloat(数量)*parseFloat(价格);
}否则{
var res=(parseFloat(quant)*parseFloat(price))-(parseFloat(quant)*parseFloat(price)*(parseFloat(disc)/100));
}
行。单元格[4]。getElementsByTagName('input')[0]。value=res;
}
函数addRow(){
var table=document.getElementById(“myTable”);
var row=table.insertRow();
var cell1=行插入单元格(0);
var cell2=行插入单元格(1);
var cell3=行插入单元格(2);
var cell4=行插入单元格(3);
var cell5=行插入单元格(4);
cell1.innerHTML=“”;
cell2.innerHTML=“”;
cell3.innerHTML=“”;
cell4.innerHTML=“”;
cell5.innerHTML=“”;
}
正文{
字体系列:“Calibri”;边距:0;}
#语调{
字体大小:粗体;
底部边框:2件纯黑;
}
.nr{
字体大小:粗体;
}
输入{
边界:无;
背景:透明;
文本对齐:居中;
}
表,th,td{
边框:1px纯黑;
边界塌陷:塌陷;
}
.左{
文本对齐:左对齐;
左边距:5px;
}

Q
-ty 价格,
$ 折扣,
% 总计,$
(不含税)
为精心提问的问题添加行
+1。对于您的观点,我将首先向每个输入添加两个类。它们都有一个共同点,这样我就可以运行$('.class1').blur(function(){});以触发总数的更新。另一个实际上是每个输入一个,这样你就可以得到它的值来应用你的数学。这是假设您可以使用jQuery。您的问题是在输入更改时没有实现该公式,行add.jQuery被标记,但您正在使用它吗?这是你想要的吗
function addRow() {
    var table = document.getElementById("myTable");
    var row = table.insertRow();
    var cell1 = row.insertCell(0);
    var cell2 = row.insertCell(1);
    var cell3 = row.insertCell(2);
    var cell4 = row.insertCell(3);
    var cell5 = row.insertCell(4);
    cell1.innerHTML = "<input class=\"Left\" size=\"100\" type=\"text\" name=\"Description\">";
    cell2.innerHTML = "<div align=\"center\"><input type=\"number\" name=\"quantity\" min=\"1\" max=\"99\"></div>";
    cell3.innerHTML = "<div align=\"center\"><input type=\"number\" name=\"summ\"  min=\"0\" max=\"999999\"></div>";
    cell4.innerHTML = "<div align=\"center\"><input type=\"number\" name=\"rate\"  min=\"0\" max=\"100\"></div>";
    cell5.innerHTML = "<div align=\"center\"><input type=\"number\" name=\"total\" min=\"0\" max=\"99999999\"></div>";
}