从cookie中读取多个复选框值

时间:2012-11-17 18:21:21

标签: javascript jquery attributes checkbox

我可以使用下面的jquery函数为复选框设置cookie。我正在使用map函数将值读入cookie,并自动保存cookie。

但我无法读取cookie并在页面刷新时设置复选框值。我需要根据cookie值设置复选框以选中/取消选中。提前谢谢。

HTML代码

<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" />

Jquery部分

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);

});

3 个答案:

答案 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");
}