2013-04-21 32 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