2012-12-12 93 views
1

我需要使用Javascript来添加和减去。我已成功添加所有输入字段,但无法从第一个字段中减去总数。我已经在下面插入了一个示例,而您将以1500的余额开始,然后插入让我们来说说您有3个字段的业务成本。如上所述,我可以成功地将所有字段加起来,但不能从天平中减去总量并在右下方显示。用Javascript添加和减去输入值

添加脚本

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
<script type="text/javascript"> 
    $(function(){   
     $('input').each(function() { 
      $(this).keyup(function(){ 
       calculateTotal($(this)); 
      }); 
     }); 
    }); 

    function calculateTotal(src) { 
     var sum = 0; 
     var sumtable = src.closest('.sumtable'); 

     sumtable.find('input').each(function() { 
      if(!isNaN(this.value) && this.value.length!=0) { 
       sum += parseFloat(this.value); 
      } 
     }); 

     sumtable.find(".total").html(sum.toFixed(2)); 
    } 
</script> 

HTML

<tr> 
    <td> 
    <font face='Verdana'> 
    <input name='amount' size='6' value='1500.00'></font></td> 
</tr> 
<table border='0' cellpadding='0' cellspacing='0' width='16%' height='31' class='sumtable'> 
<tr> 

    <font face='Verdana' style='font-size: 8pt; font-weight:700'> 
    Amount:</font></td> 
</tr> 
<tr> 
    <td> 
    <font face='Verdana'> 
    <input name='amount' size='6' ></font></td> 
</tr> 
<tr> 
    <td> 
    <font face='Verdana'> 
    <input name='amount' size='6' ></font></td> 
</tr> 
<tr> 
    <td> 
    <font face='Verdana'> 
    <input name='select3_amount' size='6' ></font></td> 
</tr> 
<tr> 
<td>&nbsp;</td> 
</tr> 
<tr> 
<td> 
<p align='right'><b> 
<font face='Verdana' size='2'>Total Cost: $ 
</font></b> </td> 
       <td><b><font face='Verdana' size='2'><span class='total'>0</span></font></b></td> 
</tr> 
<tr> 
<td> 
<p align='right'><b> 
<font face='Verdana' size='2'>Total Remaining: $ 
</font></b> </td> 
<td><b><font face='Verdana' size='2'><span class='balance'>0</span></font></b></td> 
</tr> 
</table> 

什么我需要添加到显示的余额?

+2

只是一个小提示,你可以直接使用KEYUP,'$( '输入')。KEYUP(回调)'你不需要'each' 。 – Cybrix

+0

你想从哪里减去它? – Blender

回答

1

这是你想到的:http://jsfiddle.net/ZZX5D/

var bal = $('input[name="amount"]').val(); 
bal = bal - sum 
sumtable.find(".balance").html(bal.toFixed(2)); 
+0

是的!非常感谢你! – Zowes

0

你并没有减去第一个值。

$(function(){   
     $('input').each(function() { 
      $(this).keyup(function(){ 
       calculateTotal($(this)); 
      }); 
     }); 
    }); 

    function calculateTotal(src) { 
     var sum = 0; 
     var sumtable = src.closest('.sumtable'); 

     sumtable.find('input').each(function() { 
      if(!isNaN(this.value) && this.value.length!=0) { 
       sum += parseFloat(this.value); 
      } 
     }); 

     sumtable.find(".total").html(sum.toFixed(2)); 
     var balance = parseFloat($('.actual').val()) - sum 
     sumtable.find(".balance").html(balance.toFixed(2)); 
    } 

    Added a `class actual` to the **Actual Amount** 

Check fiddle