0

当用户更新产品数量时,我有一个更新总价的功能。生成表单时,总计不会更新总计,但是当我刷新页面时,它可以工作。我想我需要使用 .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,
    });

});

文本字段的代码是这样的:

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

2 回答 2

0

我没有使用 keyup 函数,而是使用了“Peeyush”建议的 .on 函数。看完这篇文章后: jQuery.on() 是否适用于在创建事件处理程序后添加的元素?

我改变了这个:

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

对此:

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

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

对不起,如果那不是很好的解释

于 2013-03-13T23:29:19.823 回答
0

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

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

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

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

$('#total').val(newTotal.toFixed(2));
于 2013-03-13T22:47:56.803 回答