我目前正在开发一个购物车解决方案,并且我有一个用于税收的字段。
我想要做的是,当用户选择税收复选框字段时,该字段将存储在 cookie 中,因此当他们转到其他页面然后返 repo 物车时,会检查这些字段。
我正在使用http://plugins.jquery.com/project/Cookie来实现这一目标。
我可以为复选框创建 cookie,但我很难检查 cookie,如果它是用于复选框,则将复选框设置为“已选中”。 我还需要删除cookie。当用户取消选中该框时,将调用类似 $.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
});
关于php - jQuery - 保存/使用cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7219146/