2012-10-06 51 views
0

我想通過選擇一些運輸方法來計算總價值,然後該值將與訂單小計加總。jQuery:從HTML計算值

但是,當我選擇其中一種運輸方式,然後選擇另一個,總價值總和與新的和以前的選擇。例如, 。總共:200 然後點擊「DHL標準送貨:$ 10.50」 - >總價= 210.50。 之後,點擊「DHL快遞:42.50美元」 - >總計= 252.50,但它應該是242.50

如何解決這個問題?

這裏是我的jQuery代碼

$("input:radio[name=shipping]").click(function(){ 
       var total = 0; 
       $("input:radio[name=shipping]:checked").each(function() { 
        total += parseFloat($(this).val()); 
       }); 
       var current = parseFloat($('#total').val()); 
       $("#shipping").html(total); 
       total += current; 
       $("input:text[name=total1]").val(total); 

      }); 

HTML代碼

<tr valign="top"> 
    <td>Select Shipping method</td> 
<td> 
    <input id="shipping_method" type="radio" name="shipping" value="10.50"> DHL standard delivery : $10.50<br> 

    <input id="shipping_method" type="radio" name="shipping" value="42.50"> DHL express delivery : $42.50<br> 
    <input id="shipping_method" type="radio" name="shipping" value="0.00"> pick up : $0.00<br><br> 
</td> 
</tr> 

<tr> 
<td>Order Subtotal<td><label id="subtotal" value="">$200.00</label> 
</tr> 
<tr><td>&nbsp;</tr> 
<tr> 
    <td>Shipping<td>$<span id="shipping">0.00</span> 
</tr> 
<tr><td>&nbsp;</tr> 
<tr>    
<td>Total<td> $<input type="text" id="total" name="total1" value="252.50" style="border:0px;"> 
</tr> 
+2

代碼本身是有缺陷的,你加入運費+總,這是不對的,你需要添加航運+小計,還需要使用隱藏的輸入變量來存儲小計 –

+0

使用小計刪除$或字符串解析並將其用作當前。 – Dev

+0

感謝您的回答一神教,它的工作! – strc

回答

0

試試這個通知,我改變了你的變量總額從追加。

<script> 
$(document).ready(function() { 
       $("input:radio[name=shipping]").click(function(){ 
        var total = 0; 
        $("input:radio[name=shipping]:checked").each(function() { 
         total = parseFloat($(this).val()); 
        }); 
        var current = parseFloat($('#total').val()); 
        $("#shipping").html(total); 
        total = total + parseInt($('#subtotal').text().replace('$','')); 
        $("input:text[name=total1]").val(total); 

       }); 
      }); 
</script> 
0

當然,你想添加交付小計,而不是總數?我的字典將總數定義爲「多個部分的完整總和」,意思是你不應該再添加任何東西。 你需要

var current = parseFloat($('#subtotal').text()); 

,並從它的HTML刪除$符號