Answers:
首先,编辑购物车模板,/app/design/frontend/{package}/{theme}/template/checkout/cart.phtml
并在表单元素上添加ID,以方便访问。假设您添加了'id =“ cart-form”';
现在,编辑用于渲染购物车项目的模板:
并在<input>
具有名称的元素上cart[<?php echo $_item->getId() ?>][qty]
添加以下内容:
onchange="$('cart-form').submit()"
但是我不建议这样做。对于用户来说确实很烦人。(至少对我来说)。
假设您的网站的jQuery包含在无冲突模式下,这是一种异步执行此操作的方法(麻烦得多了!)。
jQuery(document).ready(function(){
jQuery('#shopping-cart-table')
.on(
'change',
'input[name$="[qty]"]',
function(){
var form = jQuery(jQuery(this).closest('form'));
// we'll extract the action and method attributes out of the form
// kick off an ajax request using the form's action and method,
// with the form data as payload
jQuery.ajax({
url: form.attr('action'),
method: form.attr('method'),
data: form.serializeArray()
});
}
);
});
我应该指出,这是基于以下假设:
分别根据第2行和第5行的代码中的选择器进行调整很容易,以适应您的情况。
如果您的jQuery版本过旧,您将不会成功。我发现了一种如下方法,请按照我们朋友马吕斯的指示进行插入
/app/design/frontend/{package}/{theme}/template/checkout/cart.phtml
并在表单元素上添加一个ID,以便于访问。假设您添加id="cart-form"
现在打开文件
app/design/frontend/{package}/{theme}/template/downloadable/checkout/cart/item/default.phtml
并滚动到文件末尾,您将找到执行数量递增和递减的javascript。该函数将如下所示:
function plusQty(itemId){
qty = $('qty'+itemId).value;
qty = parseInt(qty);
qty++;
$('qty'+itemId).value = qty;
}
function minusQty(itemId){
qty = $('qty'+itemId).value;
qty = parseInt(qty);
if(qty>0){
qty--;
$('qty'+itemId).value = qty;
}
}
为此更改:
function plusQty(itemId){
qty = $('qty'+itemId).value;
qty = parseInt(qty);
qty++;
$('qty'+itemId).value = qty;
document.getElementById("cart-form").submit();
}
function minusQty(itemId){
qty = $('qty'+itemId).value;
qty = parseInt(qty);
if(qty>0){
qty--;
$('qty'+itemId).value = qty;
document.getElementById("cart-form").submit();
}
}