สอบถามวิธีหาผลรวมด้วย Jquery โดยกล่อง Input ที่กรอกมีการวนซ้ำ ปัญหาคือมันรวมเฉพาะ row1 เท่านั้น?

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา สอบถามวิธีหาผลรวมด้วย Jquery โดยกล่อง Input ที่กรอกมีการวนซ้ำ ปัญหาคือมันรวมเฉพาะ row1 เท่านั้น?

สอบถามวิธีหาผลรวมด้วย Jquery โดยกล่อง Input ที่กรอกมีการวนซ้ำ ปัญหาคือมันรวมเฉพาะ row1 เท่านั้น?
จาก Code ด้านล่าง ผมต้องการบวก คะแนนเก็บ1 + คะแนนเก็บ2 = total 
ผมได้เขียน Jquery เพื่อรวมคะแนน ซึ่งกล่อง Input มันวนซ้ำ 
ผมลองรันดู มันสามารถ บวก ได้เฉพาะ row ที่ 1 เท่านั้น ขอแนวทางหน่อยครับ ว่าทำผิดตรงไหน?
ขอบคุณครับ

<html>
<head>
<title>jQuery Sum Demo</title>
</head>
<body>

<table>
<tr>
<th>คะแนนเก็บ1</th>
<th>คะแนนเก็บ2</th>
<th>รวม</th>
</tr>
<?php 
for($i=1;$i<=3;$i++){
?>
<tr>
<td><input type="text" name="num1" class="num1"></td>
<td><input type="text" name="num1" class="num2"></td>
<td><input type="text" class="total"></td>
</tr>
<?php } ?>
</table>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js "></script>
<script type="text/javascript">
$(document).ready(function() {
$('.num1, .num2').on('input',function() {
var num1 = parseInt($('.num1').val());
var num2 = parseInt($('.num2').val());
$('.total').val((num1 + num2 ? num1 + num2:0).toFixed(2));
});
});
</script>

</body>
</html>


Hasanlebaesa02 58.97.106.xxx 03-11-2015 12:28:55

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
น่าจะประมาณนี้

<script type="text/javascript">
$(function(){
    $(".num1,.num2").on("keyup",function(){
        var cl = $(this).attr('class');
        var indexObj = $("."+cl).index(this);
        var a = $(".num1").eq(indexObj).val();
        var b = $(".num2").eq(indexObj).val();
        a = (a==undefined || isNaN(a))?0:a;
        b = (b==undefined || isNaN(b))?0:b;
        var c = parseFloat(a)+parseFloat(b);
        c = (isNaN(c))?0:c;
        $(".total").eq(indexObj).val(c.toFixed(2));
    })  
})    
</script>    



คะแนนเก็บ1 คะแนนเก็บ2 รวม



ninenik 183.88.76.xxx 03-11-2015
 ความคิดเห็นที่ 2
แล้วถ้า สมมติ กล่อง input แรก ผมจะไม่ให้กรอกเกิน เช่น 70 หมายถึงให้กรอกระหว่าง 0-70 ไม่อนุญาติให้เกิน 70 


hasanlebaesa02 58.97.106.xxx 03-11-2015 14:25
 ความคิดเห็นที่ 3

<input type="number" name="num1" value="0" class="num1" min="0" max="70">  



ninenik 183.88.76.xxx 03-11-2015
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ