我可以使用下面的jquery函数为复选框设置cookie。我正在使用map函数将值读入cookie,并自动保存cookie。
但我无法读取cookie并在页面刷新时设置复选框值。我需要根据cookie值设置复选框以选中/取消选中。提前谢谢。
<input type="checkbox" id="Option1" name="Option1" />
<input type="checkbox" id="Option2" name="Option2" />
<input type="checkbox" id="Option3" name="Option3" />
<input type="checkbox" id="Option4" name="Option4" />
<input type="checkbox" id="Option5" name="Option5" />
var $checkboxes;
//set the cookie
function setcookie() {
var options= $checkboxes.map(function() {
if (this.checked) return this.name;
}).get().join(',');
$.cookie('new_cookie', options);
}
$(function() {
$checkboxes = $('input:checkbox').change(setcookie);
});
答案 0 :(得分:1)
试试这个:
var $checkboxes = $('input:checkbox');
//set the cookie
function setcookie() {
var options = $checkboxes.map(function () {
if (this.checked) return this.name;
}).get().join(',');
$.cookie('new_cookie', options);
}
$checkboxes.change(setcookie);
$(document).ready(function () {
var values = $.cookie('new_cookie').split(',');
$checkboxes.prop('checked', false);
for(var $v in values) {
$("input[name='" + values[$v] + "']").prop('checked', true);
}
});
答案 1 :(得分:0)
选择相应的复选框试试这个:
var chk = $.cookie('the_cookie');
$('#'+chk).prop('checked','checked');
或
$("'#"+chk+"'").prop('checked','checked');
没有试过假设可能会有所帮助。
答案 2 :(得分:0)
即使浏览器关闭或使用multitabs,也可以使Cookie持续更长时间。 试试
var $checkboxes;
//set the cookie
function setcookie() {
var options= $checkboxes.map(function() {
if (this.checked) return this.name;
}).get().join(',');
$.cookie('new_cookie', options,{expires:1});
}
$(function() {
$checkboxes = $('input:checkbox').change(setcookie);
});
在加载或刷新页面后使用
var alreadySetCookies= $.cookie('new_cookie').split(',');
for(var $cookie in alreadySetCookies) {
$("input[name='" + alreadySetCookies[$cookie] + "']").attr("checked", "checked");
}