我目前正在开发一个购物车解决方案,我有一个字段,用于税收。
我想要做的是,当用户选择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
});