jQuery:从HTML计算值

时间:2012-10-06 07:06:10

标签: 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 :(得分: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>

答案 1 :(得分:0)

当然,您希望将递送添加到小计而不是总计?我的词典将总数定义为“多个部分的完整总和”,这意味着您不应再添加任何内容。 你需要

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

并从其html中删除$符号