使用生成的表单更新数量

时间:2013-03-13 22:35:17

标签: php jquery

我有一个功能,可以在用户更新产品数量时更新总价。生成表单时,总数不会更新总数,但是当我刷新页面时,它可以正常工作。我想我需要使用.on功能,但我不确定。

$('.qty').keyup(function(event){
    var total = parseFloat($('#total').text());
    var newTotal = 0;
    var id = this.id.replace('qty-','');
    var qty = $('#qty-'+id).val();

    $('ol li').each(function(idx, li){
        var lId = li.id.replace('cart-','');
        var price = $('#price-'+lId).text();
        var lQty = $('#qty-'+lId).val();
        newTotal += parseFloat(price) * parseFloat(lQty);
    }); 

    $('#total').html(newTotal.toFixed(2));

    $.ajax({
        type: "POST",
        url: "resources/changeQty.php",
        data:{ id: id, qty: qty },
        cache: false,
    });

});

textfield的代码是:

<input type="text" name="newQty" id="qty-'.$productId.'" class="qty" size="2" maxlength="3" value="1" />

2 个答案:

答案 0 :(得分:0)

如果数据库正确更新,则问题出在javascript价格计算中(中间部分)。

你还应该发布带​​有#total元素的部分,但我的猜测是这不正确:

$('#total').html(newTotal.toFixed(2));

如果#total是输入,则应将其替换为:

$('#total').val(newTotal.toFixed(2));

答案 1 :(得分:0)

我没有使用keyup函数,而是使用了“Peeyush”建议的.on函数。看完这篇文章后: Does jQuery.on() work for elements that are added after the event handler is created?

我改变了这个:

$('.qty').keyup(function(event){});

到此:

$('#mainCart').on("keyup",".qty",function(e){});

“keyup”是触发事件 “.qty”是slector,触发事件的东西,在这种情况下是“keyup” 当有人按下“.qty”键时,我想要发生这个功能。

很抱歉,如果没有很好解释