【问题标题】:Delete old cookies on select option change在选择选项更改时删除旧 cookie
【发布时间】:2012-12-07 18:28:25
【问题描述】:

我有一个选择选项,我想在每次点击时保存选定的值。这是我的脚本

// on change deletes bill_client_id old values and set the new values
jQuery("#bill_client_id").change(function() {   
    jQuery.cookie('bill_client_id"', '', { expires: -1 });
    jQuery.cookie('bill_client_id', jQuery("#bill_client_id").val());
    alert(jQuery.cookie("bill_client_id"));
})

// on document ready Select options by values
for(var i = 0 ; i < jQuery.cookie('bill_client_id').length; i++) {              
    jQuery("#bill_client_id option[value='"+jQuery.cookie('bill_client_id')[i]+"']").attr('selected', 'selected');
}

问题是 bill_client_id 被保存了 2 次(我可以在 Firebug 中看到它们)并且在准备好文档时我只得到了旧的 bill_client_id

【问题讨论】:

    标签: jquery jquery-cookie


    【解决方案1】:

    可能是因为您的 cookie 名称不匹配?

    jQuery.cookie('bill_client_id"', '', { expires: -1 });
    

    应该是:

    jQuery.cookie('bill_client_id', '', { expires: -1 });
    

    【讨论】:

    • 对于这样的事情,你在许多地方使用相同的标识符,我很想在一个共同的地方定义它,以尽量减少这样的错别字的风险。如果您因为以后发生冲突而需要轻松更改名称,这也使其变得灵活。
    • @MohamedOmezzine 你能解释一下什么不起作用吗?这应该已经解决了您设置两个 cookie 的问题。如果您对它为什么不起作用还有其他问题,建议您开始另一个问题。
    • 我将 'bill_client_id"' 更改为 'bill_client_id' 并且我仍然有两个名为 bill_client_id 的 cookie:/
    • @MohamedOmezzine 更新代码后您是否清除了缓存/cookie?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    相关资源
    最近更新 更多