2014-12-23 109 views
1

我需要乘以a和b的两个值并显示在c中。另外我需要使用脚本显示c的附加值。请检查下面我的代码:使用脚本添加两个相同名称的数组值

HTML:

 <table border="1" id="table" class="table"> 
      <tr> 
       <th>a</th> 
       <th>b</th> 
       <th>c</th> 
      </tr> 

       <?php 
       $select= "SELECT * from table where id=1"; 
          $result = mysql_query($select); 
          $row_count=1; 
          while($row = mysql_fetch_assoc($result)) 
     { 
       ?> 
<tr>  
      <td><input type="text" value="<?php echo $row['name_a']; ?>" name="name_a[]" class="name_a"></td> 
      <td><input type="text" value="<?php echo $row['code_a']; ?>" name="code_a[]" class="code_a"></td> 
      <td><input type="text" name="id_a[]" class="id_a" ></td> 
</tr> 
     <?php 
     $row_count++; 
     } 
     ?> 

</table> 
    <input type="text" name="total" class="total"> 

SCRIPT:

$(document).ready(function() { 
    $('#table').on('keyup', '.name_a', cal) 
     .on('keyup', '.code_a', cal) 
     .on('keyup', '.id_a', cal); 

    function cal() { 
     var $row = $(this).closest('tr'), 
     name_a = $row.find('.name_a').val(), 
     code_a = $row.find('.code_a').val(), 
     id_a = $row.find('.id_a').val(), 
     id_a_calc = name_a * code_a; 

     $row.find('.id_a').val(id_a_calc) 

    } 
}); 

输出

a b c 
1 2 2 
2 4 8 

通过上面的脚本,我可以乘A和B显示在c.But如何添加在cal将这个总文本box.Need帮助

+0

您是否错过了每行上的''和''标签? – Barmar

回答

2

试试这个:

$(document).ready(function() { 
     $('#table').on('keyup', '.name_a', cal) 
      .on('keyup', '.code_a', cal) 
      .on('keyup', '.id_a', cal); 
    }); 

    function cal() { 
     var $row = $(this).closest('tr'), 
     name_a = $row.find('.name_a').val(), 
     code_a = $row.find('.code_a').val(), 
     id_a = $row.find('.id_a').val(), 
     id_a_calc = name_a * code_a; 

     $row.find('.id_a').val(id_a_calc); 
     var total = 0; 
     $(".id_a").each(function() { 
      // console.log($(this).val()); 
      if($(this).val().length > 0){ 
      total += parseInt($(this).val(), 10); 
      } 
     }); 
     $(".total").val(total); 

    } 
1

“C”和显示的两个值更新后$row.find('.id_a').val()

var total = 0; 
$(".id_a").each(function() { 
    total += parseInt($(this).val(), 10); 
}); 
$(".total").text(total); 
+1

这不起作用 –

1

试试这个代码: -

$(document).ready(function() { 
    $("#btn").click(function() { 
     var cValue = 0; 
     $('#table tr td:nth-child(3)').each(function() { 
      cValue += parseInt($(this).html()); 
     }); 
     $("#total").val(cValue) 
    }); 
}); 

的jsfiddle例如: - http://jsfiddle.net/c2S5d/21/

相关问题