将复选框状态保存到cookie而不单击

时间:2012-12-30 21:45:47

标签: jquery cookies checkbox

我用它来存储我的复选框的状态

$("input.box").each(function() {
    var mycookie = $.cookie($(this).attr('name'));
    if (mycookie && mycookie == "true") {
        $(this).prop('checked', mycookie);
    }
});
$("input.box").change(function() {
    $.cookie($(this).attr("name"), $(this).prop('checked'), {
        path: '/',
        expires: 365
    });
});

我在一个新函数中使用它来检查我的一个复选框:

if(code18 == 092) {
    $(".validate-status").text("Correct!");
    $('#code18correct').show();
    $('input[name=code18box]').prop('checked', true);
}

它工作,它检查框,但问题是,因为我没有点击它,它不会将其保存到cookie。想不出怎么解决这个问题。

任何人

1 个答案:

答案 0 :(得分:0)

设置change属性后,只需trigger复选框的checked处理程序:

$('input[name=code18box]').prop('checked', true).change();
// which is the same as
$('input[name=code18box]').prop('checked', true).trigger('change');

或使用.triggerHandler()更好的性能版本:

$('input[name=code18box]').prop('checked', true).triggerHandler('change');