JS实现类似excel的表格数据输入,并自动计算的页面
JS实现类似excel的表格数据输入,并自动计算的页面
[解决办法]
这个需要自己写函数 写逻辑
楼主参考下
- HTML code
<script type="text/javascript">function tiJiao(){ var id_td1 = document.getElementById("td1"); var id_td2 = document.getElementById("td2"); var id_td3 = document.getElementById("td3"); id_td3.innerHTML =id_td1.innerHTML * id_td2.innerHTML;}function add(id) { var row = id.insertRow(id.rows.length); var col = row.insertCell(0);col.innerHTML = " "; var col = row.insertCell(1); col.innerHTML = " "; col = row.insertCell(2); col.innerHTML = " "; } </script><table border="1" id="tbid"><tr><td width="100px;">单价</td><td width="100px;">数量</td><td width="100px;">总额</td></tr><tr><td id="td1">12</td><td id="td2">34</td><td id="td3"></td></tr></table><input type="button" onClick="tiJiao()" value="计算"><input type="button" onClick="add(tbid)" value="增加行">
[解决办法]
- HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body> <table width="80%" border="1" align="center" id="test"> <tr> <td width="69">列值</td> <td width="69">整数一</td> <td width="69">整数二</td> <td width="54">总和</td> </tr> <tr> <td>1</td> <td><input type="text" name="textfield" onchange="count(this)"></td> <td><input type="text" name="textfield3" onchange="count(this)"></td> <td><input type="text" name="textfield5" disabled></td> </tr> <tr> <td>2</td> <td><input type="text" name="textfield2" onchange="count(this)"></td> <td><input type="text" name="textfield4" onchange="count(this)"></td> <td><input type="text" name="textfield6"disabled></td> </tr> <tr> <td>合计</td> <td><input type="text" name="textfield2" disabled></td> <td><input type="text" name="textfield4" disabled></td> <td><input type="text" name="textfield6" disabled></td> </tr></table> <script type="text/javascript"> function count(inp) { //算总和 var trObj = inp.parentElement.parentElement; var sum = 0; for (var i=1; i<trObj.children.length-1; i++) //循环input所在行的单元格(除去第一格和最后一格) { sum += trObj.childNodes[i].firstChild.value ? parseInt(trObj.childNodes[i].firstChild.value,10) : 0; //如果input值为空,则算作0 } trObj.childNodes[trObj.children.length-1].firstChild.value = sum; //给最后一格内的input赋值 //算合计 var tab = document.getElementById("test"); for (var i=1; i<tab.rows[0].cells.length; i++) //循环列(除去第一列和最后一列) { var total = 0; for (var j=1; j<tab.rows.length-1; j++) //循环行(除去第一行和最后一行) { total += tab.rows[j].cells[i].firstChild.value ? parseInt(tab.rows[j].cells[i].firstChild.value,10) : 0; //如果input值为空,则算作0 } tab.rows[tab.rows.length-1].cells[i].firstChild.value = total; //给每列最下面一行的input赋值 } }</script></body></html>