jquery cookie脚本只记得复选框而不是单选按钮

时间:2011-09-19 22:19:09

标签: javascript jquery checkbox radio-button

我有一个js脚本可以帮助我创建一个cookie。它会保存选中的复选框,以便记住此值(在cookie中设置)。现在问题是它似乎不适用于单选按钮。当读取js文件时,我看到输入类型=复选框。因此忽略单选按钮是合乎逻辑的。

如何更改此脚本,以便它不仅会检查选中的复选框,还会检查选中的单选按钮?

非常感谢

我的js文件脚本:

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

}

1 个答案:

答案 0 :(得分:0)

看起来您应该只需添加单选按钮就可以了。

改变这个:

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

对此:

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

并改变这一点:

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

对此:

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