我有一个功能,可以在用户更新产品数量时更新总价。生成表单时,总数不会更新总数,但是当我刷新页面时,它可以正常工作。我想我需要使用.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" />
答案 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”键时,我想要发生这个功能。
很抱歉,如果没有很好解释