【发布时间】:2016-05-03 02:13:44
【问题描述】:
我有一个存储在 cookie 中的复选框。
这里是jquery代码:
//JQuery that will set the checkbox in it's current state
$("#checkAll").on("change", function() {
$(':checkbox').not(this).prop('checked', this.checked);
});
$(":checkbox").on("change", function(){
var checkboxValues = {};
$(":checkbox").each(function(){
checkboxValues[this.id] = this.checked;
});
$.cookie('checkboxValues', checkboxValues, { expires: 7, path: '/' })
});
function repopulateCheckboxes(){
var checkboxValues = $.cookie('checkboxValues');
if(checkboxValues){
Object.keys(checkboxValues).forEach(function(element) {
var checked = checkboxValues[element];
$("#" + element).prop('checked', checked);
});
}
}
$.cookie.json = true;
repopulateCheckboxes();
上面的代码完美运行,但是当我尝试使用按钮取消选中它们时,它根本没有取消选中。
这是我使用的函数:
$("#UncheckAll").click(function(){
$("input[type='checkbox']").prop('checked',false);
});
我该怎么办?谁能帮帮我。
【问题讨论】:
-
你知道点击回调是否触发了吗?是否清除了某些复选框,但不是全部?
-
复选框正在清除,但在刷新页面后它又回到被选中状态。
-
然后在页面加载时清除您的 cookie
-
页面刷新将导致调用
repopulateCheckboxes()。假设该功能按预期工作,当然复选框状态将恢复! -
你如何解决这个问题?