我的HTML为:
===================================
<input type="checkbox" id="Red" onclick="changeURL('WineType', 'Red')"> Red (30499)
<input type="checkbox" id="White" onclick="changeURL('WineType', 'White')"> White (22840)
===================================
首先我调用changeURL()然后调用isChecked()函数。
但是当两个函数都被执行时,复选框仍未选中。
===================================
function changeURL(fieldname, facetname) {
var ref= window.location.href ;
if(fieldname == "WineType") {
var matchPrice = location.href.match(/&fq=%7B%21tag%3Ddt1%7DWineType%3A/);
if(matchPrice == '&fq=%7B%21tag%3Ddt1%7DWineType%3A' )
{
var ndStart = ref.indexOf("WineType%3A%28");
var ndEnd = ref.indexOf("%29",ndStart );
ref = ref.substring(0,ndStart+12) + ref.substring(ndStart+12, ndEnd) +" OR " +facetname + ref.substring(ndEnd);
}
else {
ref = ref + "?&fq=%7B%21tag%3Ddt1%7DWineType%3A%28"+facetname+"%29";
}
}
window.location.href = ref;
isChecked(facetname);
};
function isChecked(element)
{
var field = document.getElementById(element);
if (element) {
if (field.checked) {
document.getElementById(element).checked= false;
} else {
document.getElementById(element).checked= true;
}
}
};
答案 0 :(得分:0)
使用localStorage并确保每次检查/取消选中时都更新localStorage。无论何时加载页面,您首先检查localStorage,如果它不是空的,则使用该标记检查所有复选框。如果它是空的,则表示首次加载页面或未进行检查。
实施localStorage的最简单方法:Here
这个很棒:Doc
P.S。有些人可能有问题,因为我建议使用w3schools,但对于第一次使用它的人来说,这是localStorage最简单的解决方案和实现
答案 1 :(得分:0)
此处尝试解决方案,并按照以下方式为我工作:
1)我发送了复选框状态和查询字符串
2)当页面重新加载时,我从查询字符串中提取复选框状态,然后相应地设置复选框的状态选中或未选中。