TLDR:在Stencil中重命名了ajaxsubmit url参数,还是有更好的方法可以快速将多个不同数量的尺寸添加到购物车中?
我需要为每种尺寸的产品设置单独的数量框,以便客户可以订购运动队。我已经能够通过在templates / components / products / set-select.html中使用此代码使这种格式出现在前端:
{{#if display_name '==' 'Size'}}
{{#each values}}
<label>{{label}}</label>
<input class="size-quantity" type="tel" name="{{id}}">
{{/each}}
<script>
sizeattributeid = {{id}};
</script>
{{/if}}
我还创建了一个单独的“添加尺寸到购物车”按钮,用于触发循环浏览每个.size-quantity
框的功能,以收集每个name
和“val
”所以我可以把它提交到购物车。
我的第一个想法是通过像这样的jQuery的ajax请求来做到这一点:
productid = jQuery('input[name="product_id"]').val();
jQuery('.size-quantity').each(function() {
qty_value = jQuery(this).val();
sizeattributevalue = jQuery(this).attr('name');
$.ajax({
type: 'GET',
url: cartUrl+'?action=add&product_id='+productid+'&qty[]=qty_value&attribute['+sizeattributeid+']='+sizeattributevalue+'&ajaxsubmit=1&fastcart=1',
success: function(data) {
//parse bigcommerce html reponse
var obj = JSON.parse($(data).html());
//success property = true if item was added successfully
if (obj.success) {
console.log('yay!');
} else {
console.log('fail!');
}
}
});
});
如果我将生成的网址粘贴到浏览器中,我已经能够获得精心设计的网址以将产品添加到购物车...但我无法使用ajax。似乎它们的代码中的ajaxsubmit部分不能与Stencil一起使用它与Blueprint一起使用的方式。
此代码是否已重命名?我唯一的替代方法是隐藏大小的选择框和数量框,然后在每个尺寸的提交循环中,让数量框填入所需数量并提交表格......但这很慢而我能够实现这一目标的唯一方法是将我的请求一次隔开600毫秒,这是一个令人无法接受的等待。