在页面刷新后检查复选框

我有几个复选框。 当单击/选中任何一个并单击搜索按钮时,将获取它们的值并作为查询字符串传递给URL并刷新返回与传递的查询值匹配的结果的页面。 像这样:mysite.com/result.aspx?k=”Hospital“或”办公室“或”紧急“

我能够在’k =’之后获取值。 我将“医院”或“办公室”或“紧急”捕获并存储在变量中。 现在我需要在页面重新加载后根据这些值重置复选框的选中状态,并忘记控件的先前状态。 我无法继续前进。 有人能帮我吗?

var checkedOnes=decodeURI(location.href.match(/\&k\=(.+)/)[1]); if (value.length == 2) { $('input[name="LocType"][value="' + value[1] + '"]').prop('checked', true); } 

这是我捕获复选框值并传递给URL的方式:

 var checkboxValues = $("input[name=LocType]:checked").map(function() { return "\"" + $(this).val() + "\"";}).get().join(" OR "); window.location= url+checkboxValues; 

  
HOSPITALS   PHYSICIAN OFFICES   EMERGENCY CENTERS   OUT-PATIENT CENTERS   FACILITIES

我遇到了同样的问题,我的解决方案是HTML5 Local Storage。 添加colect复选框值的函数

 function(){ var data = $('input[name=checkboxName]:checked').map(function(){ return this.value; }).get(); localStorage['data']=JSON.stringify(data); } 

和onload函数来检查复选框

 function(){ if(localStorage&&localStorage["data"]){ var localStoredData=JSON.parse(localStorage["data"]); var checkboxes=document.getElementsByName('checkboxName'); for(var i=0;i 

这对我来说很好。

你不应该需要JavaScript。 您可以检查后端代码中的$ _GET参数,并使用正确的表单元素属性为页面提供服务。

在PHP中,例如:

  checked="checked"  /> FACILITIES 

试试这个。

 //Split the url parameter value and get all the values in an array var checkedOnes = decodeURI(location.href.match(/\&k\=(.+)/)[1]).split(" OR "); //Find all the checkbox with name="LocType" and cache them in local variable var $checkBoxes = $('input[name=LocType]'); //Loop through the array and find the corresponding checkbox element using filter $.each(checkedOnes, function(i, val){ $checkBoxes.filter('value=[' + $.trim(val.replace(/\"/g, '')) +']').prop('checked', true); }); 

我将k的值除以OR ,它将给出数组中的所有值。 接下来,遍历数组并通过匹配其value属性找到相应的复选框,并使用prop方法将其checked属性设置为true