jQuery表单提交并禁用cookie问题

问题描述 投票:0回答:1

我正在开发一个样本系统,使Shopify客户只能将样品添加到他们的购物车一次,因为cookie会记住样品是否已添加到购物车中。选择并添加项目后,应禁用再次添加的功能。

但是,似乎整个添加过程都被禁用。我究竟做错了什么?

Live view

$('#{{ product.handle }}').submit(function (additem) {
    $(this).find(':input[type=submit]').prop('disabled', true).val('Sample Added!');
    $.cookie('sample', '{{ product.handle }}', {
        expires: 7
    });
});

if ($.cookie('sample', 'balancing-treatment-sample')) {
    $('#balancing-treatment-sample-wrap').addClass("added");
    $('#balancing-treatment-sample-buy').prop('disabled', true).val('Sample Added!');
} else {}
if ($.cookie('sample', 'cleanser-mask-sample')) {
    $('#cleanser-mask-sample-wrap').addClass("added");
    $('#cleanser-mask-sample-buy').prop('disabled', true).val('Sample Added!');
} else {}
jquery cookies shopify
1个回答
2
投票

您使用的库现在不再维护qazxsw poi

请改用$.cookie

以下代码段访问当前域的本地Storage对象,并使用LocalStorage向其添加数据项。

Storage.setItem()

读取localStorage项的语法如下:

localStorage.setItem('myCat', 'Tom');

删除localStorage项的语法如下:

var cat = localStorage.getItem("myCat");

此外,你需要将所有添加的项目存储在购物车中并保持它们被禁用,因此你需要一个数组的集合,但localStorage.removeItem("myCat"); 不支持它们,所以你可以用localStorage将它们转换为JSON字符串然后JSON.stringify()它们重用。将脚本更改为

JSON.parse()
© www.soinside.com 2019 - 2024. All rights reserved.