2013-04-21 65 views
0

基於這篇文章,在這裏,JQuery multiply input values of table rows,我使用了相同的表單字段名稱並添加了Tax字段和Discount字段。添加,減去和乘以表格輸入值

 <tr class="txtMult"> 
     <td> 
      <input name="txtEmmail" class="val1" /> 
     </td> 
     <td> 
      <input name="txtEmmail" class="val2"/> 
     </td> 
     <td> 
      <span class="multTotal">0.00</span> 
     </td> 
    </tr> 
     <tr class="txtMult"> 
     <td> 
      <input name="txttax" class="val1" />% 
     </td> 
     <td> 

     </td> 
     <td> 
      <span class="multTax">0.00</span> 
     </td> 
    </tr> 

需要被相乘,像如果我輸入10(%)

var $tax = ($val1 * 1) * ($total * 1)/100; 
$('.multTax', this).text($tax); 

然後出把那個作爲稅收量 我改變了txttax類值作爲VAL3和添加的此稅jQuery像上面

再次,我需要減去折扣,我嘗試了所有可能的方式,但沒有運氣。

這是函數(編輯)

$(document).ready(function() { 
    $(".txtMult input").keyup(multInputs); 
    function multInputs() { 
     var mult = 0; 
     $("tr.txtMult").each(function() { 
      var $val1 = $('.val1', this).val(); 
      var $val2 = $('.val2', this).val(); 
      var $val3 = $('.val3', this).val(); 
      var $total = ($val1 * 1) * ($val2 * 1); 
      var $tax = ($val1 * 1) * ($total * 1)/100; 
      $('.multTotal', this).text($total); 
      $('.multTax', this).text($tax); 
      mult += $total; 
     }); 
     $("#grandTotal").text(mult); 
    } 
}); 

請指教。 (花了一整天)

+0

哪裏'$ val1','$ total'和'$ tax'定義? – 2013-04-21 00:31:19

+0

@Andrew Whitaker,再次編輯:) – sammry 2013-04-21 00:36:37

+0

@sammry請刪除無關的標記;它僅用於混淆。只有表單域和跨度很重要。保持僅關注相關問題的問題。請注意,您有兩個類爲'.val1'的字段,兩個名爲'txtEmmail'的輸入,而沒有名爲'.val3',這是故意的嗎?你的代碼看起來很奇怪。 – 2013-04-21 00:43:16

回答

2

jsFiddle solution

HTML

<table> 
<tr class="txtMult"> 
    <td> 
     <input name="txtEmmail" class="val1" /> 
    </td> 
    <td> 
     <input name="txtEmmail" class="val2"/> 
    </td> 
    <td> 
     <span class="multTotal">0.00</span> 
    </td> 
</tr> 
    <tr class="txtMult odd"> 
    <td> 
     <input name="txttax" class="val3" />% 
    </td> 
    <td> 

    </td> 
    <td> 
     <span class="multTax">0.00</span> 
    </td> 
</tr> 
</table> 

<span id="grandTotal"></span> 

JS

$(document).ready(function() { 

    $("input").keyup(multInputs); 
    function multInputs() { 
     var mult = 0; 
     $("tr.txtMult").not('.odd').each(function() {   
      var $val1 = $('.val1', this).val(); 
      var $val2 = $('.val2', this).val(); 
      var $val3 = $('.val3', $(this).next()).val(); 

      var $total = $val1 * $val2; 
      var $tax = $val3 * ($total/100); 

      $('.multTotal', this).text($total); 
      $('.multTax', $(this).next()).text($tax); 

      mult += $total - $tax; 
     }); 

     $("#grandTotal").text(mult); 
    } 
}); 
+0

嗨@ozerich,謝謝你的回答,稅額不對。對於val1 = 50和val2 = 50總數是5000,當我輸入txttax = 10(%)時,答案是不正確的,我現在正在使用乘數。謝謝 – sammry 2013-04-21 00:59:45

+0

@sammry,我已更新鏈接的帖子,我修復了你的bug – Ozerich 2013-04-21 01:03:22

+0

非常感謝你@ozerich,我應該跟隨同樣的折扣也是因爲val4與奇怪的tr類 – sammry 2013-04-21 01:05:48