我有一个js脚本,帮助我创建一个cookie。它保存选中的复选框,以便记住这个值(在cookie中设置)。现在的问题是,它似乎不适用于单选按钮。在读取js文件时,我看到input type=复选框。所以忽略单选按钮是合乎逻辑的。
我如何修改这个脚本,使它不仅检查选中的复选框,还检查选中的单选按钮?
多谢
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));
}
}
看起来你只需要添加单选按钮就可以了
改变:
$("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(){...});