-4

我的 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; 
          } 
     }   
};  
4

2 回答 2

0

使用 localStorage 并确保无论何时检查/取消选中都更新您的 localStorage。每当加载页面时,您首先检查您的 localStorage ,如果它不为空,那么您使用它标记所有复选框的检查。如果它是空的,则意味着页面是第一次加载或没有进行检查。

实现 localStorage 的最简单方法:这里
这个很棒:Doc

PS 有些人可能会遇到问题,因为我建议使用 w3schools,但对于第一次使用它的人来说,这是 localStorage 最简单的解决方案和实现

于 2013-02-22T07:00:26.290 回答
0

该解决方案在这里尝试并为我工作,如下所示:
1)我发送了复选框状态以及查询字符串。
2)当页面重新加载时,我从查询字符串中提取复选框状态,然后相应地设置复选框的状态为checkedunchecked

于 2013-02-25T04:44:07.613 回答