 |
ช่วยดูโค้ดการบวก Sumtotal ให้หน่อยค่ะ มันขึ้นแต่ 0 กับ NaN นั่งงมมาหลายวันแล้ว |
|
 |
|
|
 |
 |
|
ให้เป็นแนวทางครับ ผมเขียนแบบนี้ใช้ได้ครับ
<script language="JavaScript">
function fncSums25()
{
var t1 = document.getElementsByName('textbox1');
var t2 = document.getElementsByName('textbox2');
var tot=0;
for(var i=0;i<enow.length;i++){
if(parseFloat(t1[i].value))
tot += parseFloat(t1[i].value)+parseFloat(t2[i].value);
}
var total=tot;
document.getElementById('textboxsum').value = Math.round(total);
}
document.addEventListener("DOMContentLoaded", function(event) {
fncSums25();
});
</script>
|
 |
 |
 |
 |
Date :
2021-10-15 15:54:17 |
By :
comsc006 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (JavaScript)
let elems = document.getElementsByClassName('items');
let myLength = elems.length,
let totalsale = 0;
for (var i = 0; i < myLength; ++i) {
totalsale += elems[i].value-0; // elems[i].value-0 ทำ string ให้เป็นตัวเลข แบบสั้นๆ ขีเกียจ parse
}
document.getElementById('totalsale').value = totalsale;
Code (JavaScript)
function getType(x) {
let stringConstructor = "test".constructor;
let arrayConstructor = [].constructor;
let objectConstructor = ({}).constructor;
if (x === null) {return "null";}
if (x === undefined) {return "undefined";}
if (x.constructor === stringConstructor) {return "String";}
if (x.constructor === arrayConstructor) {return "Array";}
if (x.constructor === objectConstructor) {return "Object";}
return "don't know";
}
function getItems(){
let items = new Array();
let itemCount = document.getElementsByClassName("items");
let totalsale = 0;
for(var i = 0; i < itemCount.length; i++){
let id = `saletotal_${itemCount[i].id}`;
let v = document.getElementById(id).value
if(getType(v)==='String'){
totalsale += v-0;
}
}
document.getElementById('paymentreceipt').value = totalsale;
return totalsale;
}
getItems();
ลองดูหลายๆ แบบ
|
 |
 |
 |
 |
Date :
2021-10-15 17:17:49 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณทุกคนสำหรับคำแนะนำค่ะ 
|
 |
 |
 |
 |
Date :
2021-10-15 22:01:19 |
By :
aobjung |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
2021 แล้ว, เลิกเขียน jQuery เถอะ
DOM, ECMA, etc, ...
Code (PHP)
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>DOM->Sum with loop->element</title>
<style>
td, td > input[type="text"]{text-align:center;height:30px;line-height:30px;}
td > input[type="text"]{border:1px solid #ddd;}
input:read-only {background-color: #ddd;}
</style>
</head>
<body>
<form id="test">
<table id="table">
<thead>
<tr>
<td>No</td>
<td>ID</td>
<td>Number</td>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td><input type="text" name="id[]" value="1"></td>
<td><input type="text" name="amt[]" class="items" value="10"></td>
</tr>
<tr>
<td>2</td>
<td><input type="text" name="id[]" value="2"></td>
<td><input type="text" name="amt[]" class="items" value="20"></td>
</tr>
<tr>
<td> </td>
<td><input type="text" name="count" id="num-rows" readonly></td>
<td><input type="text" name="total" id="total" readonly></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><button type="button" id="calculate">Calculate</button></td>
</tr>
</tbody>
</table>
</form>
<script>
(function() {
var items = document.querySelectorAll(".items");
const total = () => {
let total = 0;
let numRows = 0;
for (let element of items) {
numRows++;
total += Number(element.value);
}
document.getElementById("num-rows").value = numRows;
document.getElementById("total").value = total;
}
document.getElementById("calculate").addEventListener("click", function() {
total();
});
items.forEach(el => el.addEventListener('keyup', event => {
total();
}));
}());
</script>
</body>
</html>
|
 |
 |
 |
 |
Date :
2021-10-18 09:19:39 |
By :
Guest |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
short hand:
+number //convert to number
Code (JavaScript)
for (let element of items) {
numRows++;
total += +element.value;
}
|
 |
 |
 |
 |
Date :
2021-10-18 10:08:22 |
By :
Guest |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
map + reduce
Code (JavaScript)
var items = document.querySelectorAll(".items");
const total = () => {
document.getElementById("total").value = [...document.querySelectorAll(".items")].map(item => +item.value).reduce((sum, number) => {
return sum + number;
}, 0);
}
document.getElementById("calculate").addEventListener("click", function() {
total();
});
|
 |
 |
 |
 |
Date :
2021-10-18 12:37:58 |
By :
Guest |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|