开发者

jquery cookie script only remembers checkboxes and not radio buttons

开发者 https://www.devze.com 2023-04-05 19:32 出处:网络
I have a js script that helps me create a cookie. It saves the checked checkboxes 开发者_StackOverflow中文版so this value is remembered (set in the cookie). Now the problem is that it doesn\'t seem to

I have a js script that helps me create a cookie. It saves the checked checkboxes 开发者_StackOverflow中文版so this value is remembered (set in the cookie). Now the problem is that it doesn't seem to work with radio buttons. When reading the js-file, I see that input type=checkboxes. So it's logical it ignores radio buttons.

How do I change this script, so it will not only check the checked checkboxes, but also the checked radio buttons?

Many thanks

My js file script:

    jQuery(document).ready(function(){

    new chkRemembrance();

});

function chkRemembrance(){
    this.__construct();
}

chkRemembrance.prototype = {

    __construct : function(){
        this.chk = this.fetchData(); // initialise array to store the checkboxes
        this.init();
    },

    init : function(){
        // first initialise all checkboxes that are checked
            for(c in this.chk){
                $("input[type=checkbox]#" + c).attr('checked', this.chk[c]);
            }
        // now make sure we fetch the checkbox events
        var o = this;
        $("input[type=checkbox]").change(function(){
            o.saveData(this.id, this.checked);
        })
    },

    fetchData : function(){
        var r = {};
        if ($.cookie('chk')){
            r = JSON.parse($.cookie('chk'));
        }
        return r;
    },

    saveData : function(id,status){
        this.chk[id] = status;
        $.cookie('chk', JSON.stringify(this.chk));
    }

}


It looks like you should just be able to add in the radio buttons and it will work.

Change this:

$("input[type=checkbox]#" + c).attr('checked', this.chk[c]);

To this:

$("input[type=checkbox]#" + c + ", input[type=radio]#" + c).attr('checked', this.chk[c]);

And change this:

    $("input[type=checkbox]").change(function(){...});

To this:

    $("input[type=checkbox], input[type=radio]").change(function(){...});
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号