รบกวนขอคำแนะนำในการเขียน javascript แบบ Multiple text auto sum Even OnKeyUp ด้วยครับ
เคยทำ เด๋วหามา แล้ว Edit โพสต์ให้...
ถ้าใครช่วยก่อน หรือ ทำได้ก่อนก็ข้ามไปเล๊ยยยยยยยยยยยย โย่ว ๆ ๆ
Date :
2013-01-24 13:50:36
By :
apisitp
นั่นไงได้ไปแล้วมั่ง อิอิ
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>:: +++ ::</TITLE>
<meta http-equiv=Content-Type content="text/html; charset=tis-620">
<script language="JavaScript">
function fncSum()
{
{
if(isNaN(document.frmMain.a1.value) || document.frmMain.b1.value == "")
{
return;
}
document.frmMain.c1.value = parseFloat(document.frmMain.a1.value) * parseFloat(document.frmMain.b1.value);
if(isNaN(document.frmMain.a2.value) || document.frmMain.b2.value == "")
{
return;
}
//document.frmMain.c1.value = parseFloat(document.frmMain.a1.value) * parseFloat(document.frmMain.b1.value);
document.frmMain.c2.value = parseFloat(document.frmMain.a2.value) * parseFloat(document.frmMain.b2.value);
}
document.frmMain.total.value= parseFloat(document.frmMain.c1.value) + parseFloat(document.frmMain.c2.value);
}
</script>
<body>
<BR>
<form name='frmMain' method='post' >
a1
<input name='a1' type='text' id='a1' size='10' value='' onKeyUp="fncSum();" style='background-color:#99FFFF; color:#CC0033;'> x b1
<input name='b1' type='text' id='b1' size='10' value='' onKeyUp="fncSum();" style='background-color:#99FFFF; color:#CC0033;'> =
<input name='c1' type='text' id='c1' size='10' value='' readonly='readonly' style='background-color:#99FFFF; color:#CC0033;'> : c1
<br>
a2 <input name='a2' type='text' id='a2' size='10' value='' onKeyUp="fncSum();" style='background-color:#99FFFF; color:#CC0033;'> x b2
<input name='b2' type='text' id='b2' size='10' value='' onKeyUp="fncSum();" style='background-color:#99FFFF; color:#CC0033;'> =
<input name='c2' type='text' id='c2' size='10' value='' readonly='readonly' style='background-color:#99FFFF; color:#CC0033;'> : c2
<br>
total c
<input name='total' type='text' id='total' size='10' maxlength='6' value='' readonly='readonly' style='background-color:#99FFFF; color:#CC0033;'>
</form>
</body>
</HTML>
Date :
2013-01-24 14:21:30
By :
apisitp
Code (PHP)
<html>
<head>
<title>ThaiCreate.Com Tutorial</title>
</head>
<body>
<form name="frmMain" action="" method="post">
<script language="JavaScript">
function fncSum()
{
var sum = 0;
var cost = document.frmMain.('txtNumber[]');
for(var i=1;i<cost.length;i++){
sum += (cost.value*1);
}
document.frmMain.txtNumberC.value = parseFloat(sum);
}
</script>
Number A <input type="text" name="txtNumber[]" value="" OnChange="fncSum();" OnKeyUp="fncSum();"> <br>
Number B <input type="text" name="txtNumber[]" value="" OnChange="fncSum();" OnKeyUp="fncSum();"> <br>
Number C <input type="text" name="txtNumber[]" value="" OnChange="fncSum();" OnKeyUp="fncSum();"> <br>
Number D <input type="text" name="txtNumber[]" value="" OnChange="fncSum();" OnKeyUp="fncSum();"> <br>
A + B + C + D = <input type="text" name="txtNumberC" value=""><br>
</form>
</body>
</html>
หรือแบบนี้
Code (PHP)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>:: +++ ::</TITLE>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<script language="JavaScript">
function fncSum()
{
{
for(var i=0;i<document.frmMain['a[]'].length;i++){
document.frmMain['c[]'][i].value = parseFloat(document.frmMain['a[]'][i].value) * parseFloat(document.frmMain['b[]'][i].value);
}
}
for(var i=0;i<document.frmMain['c[]'].length;i++){
//document.frmMain.total.value += (parseFloat(document.frmMain['c[]'[i].value);
}
//document.frmMain.total.value= parseFloat(document.frmMain.c1.value) + parseFloat(document.frmMain.c2.value);
}
</script>
<body>
<BR>
<form name='frmMain' method='post' >
a1
<input name='a[]' type='text' id='a[]' size='10' value='' onKeyUp="fncSum();" style='background-color:#99FFFF; color:#CC0033;'> x b1
<input name='b[]' type='text' id='b[]' size='10' value='' onKeyUp="fncSum();" style='background-color:#99FFFF; color:#CC0033;'> =
<input name='c[]' type='text' id='c[]' size='10' value='' readonly='readonly' style='background-color:#99FFFF; color:#CC0033;'> : c1
<br>
a2 <input name='a[]' type='text' id='a[]' size='10' value='' onKeyUp="fncSum();" style='background-color:#99FFFF; color:#CC0033;'> x b2
<input name='b[]' type='text' id='b[]' size='10' value='' onKeyUp="fncSum();" style='background-color:#99FFFF; color:#CC0033;'> =
<input name='c[]' type='text' id='c[]' size='10' value='' readonly='readonly' style='background-color:#99FFFF; color:#CC0033;'> : c2
<br>
total c
<input name='total' type='text' id='total' size='10' maxlength='6' value='' readonly='readonly' style='background-color:#99FFFF; color:#CC0033;'>
</form>
</body>
</HTML>
ถ้าลักษณะโค๊ดเป็นประมาณนี้ต้องเขียนในส่วนของ fncSum() ยังไงครับ
รบกวนด้วยครับ
ประวัติการแก้ไข 2013-01-24 14:58:00 2013-01-24 15:15:26
Date :
2013-01-24 14:28:21
By :
nook563
ขอบคุณมากครับ ได้ตามต้องการมา 1 ขั้นตอนแล้วครับ
Code (PHP)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>:: +++ ::</TITLE>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<script language="JavaScript">
function fncSum()
{
{
for(var i=0;i<document.frmMain['a[]'].length;i++){
document.frmMain['c[]'][i].value = parseFloat(document.frmMain['a[]'][i].value) * parseFloat(document.frmMain['b[]'][i].value);
}
}
var sum = 0;
for(var i=0;i<document.frmMain['c[]'].length;i++){
sum += parseFloat(document.frmMain['c[]'][i].value);
}
document.frmMain.total.value = sum;
}
</script>
<body>
<BR>
<form name='frmMain' method='post' >
<?php
for($i=0;$i<=2;$i++){
?>
a<?=$i;?><input name='a[]' type='text' id='a[]' size='10' value='' onKeyUp="fncSum();" style='background-color:#99FFFF; color:#CC0033;'> * b<?=$i;?>
<input name='b[]' type='text' id='b[]' size='10' value='' onKeyUp="fncSum();" style='background-color:#99FFFF; color:#CC0033;'> =
<input name='c[]' type='text' id='c[]' size='10' value='' readonly='readonly' style='background-color:#99FFFF; color:#CC0033;'> : c<?=$i;?>
<br/>
<?php
}
?>
total c
<input name='total' type='text' id='total' size='10' maxlength='6' value='' readonly='readonly' style='background-color:#99FFFF; color:#CC0033;'>
</form>
</body>
</HTML>
Date :
2013-01-24 15:37:10
By :
nook563
ขออนุญาติ ขุดกระทู้นี้ครับ ผมลองทำแล้วตาม code พี่ๆด้านบน แต่มีเคสที่ผมตรวจรับสินค้า 1 รายการ แล้วมันไม่ได้อ่ะครับ แต่ถ้าหาก >= 2 รายการไปมันได้อ่ะครับ รบกวนทีครับ
Date :
2013-05-07 20:40:32
By :
เด็กฝึกหัด :)
Load balance : Server 05