保存/使用cookie


jQuery - saving/using cookies

我目前正在开发一个购物车解决方案,我有一个字段,用于税收。

我想要做的是,当用户选择tax的复选框字段时,这将存储在cookie中,因此当他们转到其他页面然后返回购物车时,这些字段将被选中。

我使用http://plugins.jquery.com/project/Cookie来实现这个。

我可以为复选框创建cookie,但我很难检查cookie,如果它是一个复选框,那么将复选框设置为'checked'。我还需要,删除cookie。当用户取消选中该框时,调用类似$。饼干("vat_1 ", null)

到目前为止,我有以下代码:
$(document).ready( function() {
    $('input:checkbox[name="<?php echo $prod; ?>"]').click(function() { 
        var name = $(this).attr("name"); 
        var value = $(this).val(); 
        var date = new Date();
        date.setTime(date.getTime() + (30 * 60 * 1000));
        $.cookie(name, value, { expires: date });//Set the expires time as per your requirement.  
        cookie = $.cookie(name);
        alert(cookie);    
    }) 
});

非常感谢所有的帮助。

谢谢

要支持加载先前选中的框,在document.ready()函数的顶部插入以下代码:

$('input:checkbox').each(function(index) {
    cookie = $.cookie($(this).attr("name"));
    if (cookie == 1) {
        $(this).prop('checked', true);
});

这应该循环遍历页面上的每个复选框,查找相关的cookie,并相应地更改复选框。

关于首先删除cookie并正确设置它们,您不应该使用复选框的val()。相反,你应该查找它的checked属性:

$('input:checkbox[name="<?php echo $prod; ?>"]').click(function() { 
    var name = $(this).attr("name"); 
    var value = $(this).prop('checked'); 
    var date = new Date();
    date.setTime(date.getTime() + (30 * 60 * 1000));
    if (value) {
        $.cookie(name, 1, { expires: date });
    } else {
        $.cookie(name, null);
    }
    cookie = $.cookie(name);
    alert(cookie);    
})

这两段代码应该这样组合

$(document).ready( function() {
    //first code above
    //second code above
});