jQuery表单提交并禁用cookie问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery表单提交并禁用cookie问题相关的知识,希望对你有一定的参考价值。

我正在开发一个样本系统,使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 {}
答案

您使用的库现在不再维护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()

以上是关于jQuery表单提交并禁用cookie问题的主要内容,如果未能解决你的问题,请参考以下文章

在表单提交/登录时使用 jquery 设置 cookie

jquery禁用表单提交

使用 jquery 禁用/启用整个表单的提交

使用 Jquery Validator 出现验证错误时如何避免或禁用表单提交

当 jquery.validate 验证表单时启用提交按钮

jQuery多行表单:禁用提交,直到每行都选中了一个单选