试图从数量和价格中获得总数

时间:2014-05-12 17:46:32

标签: javascript jquery forms

我已经在这个问题上工作了一段时间,但是我无法在这里找到问题所在。我想我已经看了太久了。我需要在将数量添加到表单后获取要添加的项目。

这是我的HTML

<div class="row-fluid container-cart">

    <div class="span4">
        <div class="thumbnail">
            <img src="http://myurl.com/image.jpg" />
            <div class="caption">
                <h3 class="">Title</h3>
                <p class="">Description</p>
                <div class="row-fluid">
                    <div class="span6">
                        <p class="lead">
                            <span id="item-price">100</span>
                            <span class="price-integer">
                                <input type="hidden" value="100">
                            </span>
                        </p>
                    </div>
                    <div class="span6">
                        <span>Quantity</span>
                        <input type="text" name="" id="quantity" class="stored quantity" autocomplete="off" value="">
                    </div>
                    <div class="span6">
                        <input type="text" name="base-total" id="base-total" class="stored readonly base-total" value="" readonly>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<div class="span6">
    Total: 
    <span class="total-cart">
         <input type="text" name="total-cart" id="total-cart" class="stored readonly" value="" disabled="disabled">
    </span>
</div>

这是我的JS

$('.quantity').on('keyup', function() {
    var sum = 0;
    $(".container-cart").each(function(i,o){

        total = parseInt($(o).find(".quantity input").val(), 10) * parseInt($(o).find(".price-integer input").val(), 10);
        if(!isNaN(total) /*&& total.length!=0**/) {
            $(o).find(".base-total").val(total);
            sum += total;
        }
    });
    $("#total-cart").val(sum);
});

1 个答案:

答案 0 :(得分:0)

看起来您输入了错误的选择器,它是.quantity input.quantity是输入,所以它不会有任何孩子,也许你想要的意思是input.quantity这意味着找到inputquantity

Demo.