【问题标题】:jQuery - saving/using cookiesjQuery - 保存/使用 cookie
【发布时间】:2011-08-28 14:08:52
【问题描述】:

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

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

我正在使用http://plugins.jquery.com/project/Cookie 来实现这一点。

我可以为复选框创建 cookie,但我很难检查 cookie,如果它是用于复选框,则将复选框设置为“已选中”。 我也需要,删除cookies。当用户取消选中该框时,调用类似 $.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);    
    }) 
});

非常感谢所有帮助。

谢谢

【问题讨论】:

  • 您可以使用的另一件事是会话。但你也可以创造自己的价值。就像 tax = 1 或 0,而不是从复选框本身设置一个值。所以,你只需检查它是否被选中,如果是,则设置 tax = 1。

标签: php jquery cookies


【解决方案1】:

要支持加载之前选中的框,请在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
});

【讨论】:

    猜你喜欢
    • 2011-10-26
    • 1970-01-01
    • 2014-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多