2013-01-17 40 views
0

我想創建一個表,可以自動計算每行的每個字段的一些值。我發現這些jquery計算器,我想問我該如何使用它incase我將使用jstl forEach,我怎麼能使用這個,所以我會自動計算每個用戶在每個字段上輸入的字段。 。謝謝..自動計算器每行

<html> 
    <head> 
     <script type="text/javascript" src="js/jquery-latest.js"></script> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <script type="text/javascript"> 
          $(document).ready(function() 
         { 
          $('input').change(function() 
          { 
           var ProductUnitVal = parseInt($('#product-unit-val').val()); 
           var TotalUnitSales = parseInt($('#total-unit-sales').val()); 

           var answer = ProductUnitVal * TotalUnitSales; 

           $('#sales-val').html('$' + answer); 
          }); 
         }); 
      </script> 
    </head> 
    <body>  

     Unit Value <input type="text" id="product-unit-val" /><br /> 
     Unit Sales <input type="text" id="total-unit-sales" /><br /> 
     <span id="sales-val"></span> 

    </body> 
</html> 

回答

1

使其成爲基於行。當輸入發生變化時,查找找到元素範圍的最近行(tr)。然後搜索各種元素的範圍(即行)。請注意,我從3個項目的id更改爲class。

<table id="thetable"> 
<tr> 
<td> 
Unit Value <input type="text" class="product-unit-val" /> 
</td> 
<td> 
Unit Sales <input type="text" class="total-unit-sales" /> 
</td> 
<td><span class="sales-val"></span></td> 
</tr> 
</table> 

然後你的腳本:

    $(document).ready(function() 
        { 
         $('#thetable input').change(function() 
         { 
          var $row = $(this).closest('tr'); 

          var ProductUnitVal = parseInt($row.find('.product-unit-val').val()); 
          var TotalUnitSales = parseInt($row.find('.total-unit-sales').val()); 

          var answer = ProductUnitVal * TotalUnitSales; 

          $row.find('.sales-val').html('$' + answer); 
         }); 
        }); 
+0

您好感謝您的回答..怎麼樣,如果其結果將是一個文本框 – toink

+1

除了沒有設置'.html'設置'沒有什麼不同。 val'例如'$ row.find('。sales-val')。val('$'+ answer);' –

+0

我知道了...... document.getElementById('mydata')。value = answer假設'mydata'是id我的輸入...感謝Eli – toink