Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > รบกวนขอคำแนะนำในการเขียน javascript แบบ Multiple text auto sum Even OnKeyUp ด้วยครับ



 

รบกวนขอคำแนะนำในการเขียน javascript แบบ Multiple text auto sum Even OnKeyUp ด้วยครับ

 



Topic : 089716



โพสกระทู้ ( 227 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์




textsum

จากภาพ ผมต้องการให้เมื่่อมีการกรอกข้อมูลจาก textbox A และ B เรียบร้อยแล้ว จะได้ผลลัพธ์ ในส่วนของ textbox C
และ Textbox C total ในขณะที่ even ที่ต้องการคือ OnKeyUp
ในกรณีนี้ผมสนใจที่ การคำนวนผลรวมทั้งหมดของ textbox C (sum textbox C) แล้วนำไปแสดงที่ textbox C total ตัวล่างสุดก่อนครับ

โครงสร้างในส่วนของjavascript ต้องเขียนเป็นแบบไหนครับ ที่ผมมีตัวอย่างเป็นแบบนี้แต่ผมไม่สามารถแกะโค๊ดได้

Code (JavaScript)
function textsum(){
function calA(i){
    var d = function (){	
          .....................
          ............................
             /*
            var sum=0;
	var cost = document.getElementsByName('txtpricetotal[]');
		//cost.value = cost.value.replace(/[^\d\.]/g,'');
		for(var i=0;i<cost.length;i++)
		 {
			sum = (sum * 1) + (cost[i].value*1);
		 }
		 document.getElementById('txtsumtotal').value = sum;
            */
    }
    return d; 
   }
   for(var i=1;i<document.frmbegcomplete['txtprice[]'].length;i++){
	   	document.frmbegcomplete['txtprice[]'][i].onkeyup = calA(i);
		document.frmbegcomplete['txtorder[]'][i].onkeyup = calA(i);
	   }
}


Code (PHP)
<input type=\"text\" id=\"txtprice[]\" name=\"txtprice[]\" value=\"\" OnKeyUp=\"textsum()\" />
<input type=\"text\" id=\"txtorder[]\" name=\"txtorder[]\" value=\"\" OnKeyUp=\"textsum()\" />




Tag : PHP, MySQL, JavaScript









ประวัติการแก้ไข
2013-01-24 13:49:27
2013-01-24 13:52:32
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-01-24 13:47:38 By : nook563 View : 2560 Reply : 7
 

 

No. 1



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


เคยทำ เด๋วหามา แล้ว Edit โพสต์ให้...
ถ้าใครช่วยก่อน หรือ ทำได้ก่อนก็ข้ามไปเล๊ยยยยยยยยยยยย โย่ว ๆ ๆ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-01-24 13:50:36 By : apisitp
 


 

No. 2



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ลองดูตัวนี้ครับ



JavaScript Sum Total Value From Textbox
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-01-24 13:53:30 By : mr.win
 

 

No. 3



โพสกระทู้ ( 5,105 )
บทความ ( 4 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


นั่นไงได้ไปแล้วมั่ง อิอิ

<!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
 


 

No. 4



โพสกระทู้ ( 227 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


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
 


 

No. 5



โพสกระทู้ ( 227 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ขอบคุณมากครับ ได้ตามต้องการมา 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
 


 

No. 6



โพสกระทู้ ( 227 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


https://www.thaicreate.com/php/forum/089731.html#2

สมบูรณ์ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-01-25 15:00:21 By : nook563
 


 

No. 7

Guest


ขออนุญาติ ขุดกระทู้นี้ครับ ผมลองทำแล้วตาม code พี่ๆด้านบน แต่มีเคสที่ผมตรวจรับสินค้า 1 รายการ แล้วมันไม่ได้อ่ะครับ แต่ถ้าหาก >= 2 รายการไปมันได้อ่ะครับ รบกวนทีครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-07 20:40:32 By : เด็กฝึกหัด :)
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนขอคำแนะนำในการเขียน javascript แบบ Multiple text auto sum Even OnKeyUp ด้วยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่