我抓住所有选中的复选框'值和传递到URL并按下按钮,页面重新加载并根据传递的查询字符串提取所有结果。我无法做的是在页面重新加载后保持复选框的选中状态,因为我没有服务器代码访问权限。一切都在客户端完成。这就是我抓取值并传递给URL的方式:
var checkboxValues = $("input[name=LocType]:checked").map(function() {
return "\"" + $(this).val() + "\"";}).get().join(" OR ");
window.location= url+checkboxValues;
现在单击GO按钮,页面将重新加载URL。 http://mysite.com/results.aspx?k="医院"或者"办公室"或者"设施"如果检查了这三个复选框...并根据选择提取结果。我试图在k =之后获取查询字符串并使用它将respectiv复选框的选中状态设置为TRUE,以便它们保持检查...
它无法正常工作,我无法找出原因?
var checkedOnes = decodeURI(location.href.match(/\&k\=(.+)/)[1]).split(" OR ");
var $checkBoxes = $('input[name=LocType]');
$.each(checkedOnes, function(i, val){
$checkBoxes.filter('value=[' + $.trim(val.replace(/\"/g, '')) +']').prop('checked', true);
});
上面的代码在document.ready(){}中,而数组checkedOnes返回值为:Hospital OR Office OR Facility ...
<div class="LocTypeChkBoxesSearch">
<div class="LocTypeChkBoxes">
<input name="LocType" type="checkbox" value="Hospital"/>HOSPITALS  
<input name="LocType" type="checkbox" value="Office"/> PHYSICIAN OFFICES  
<input name="LocType" type="checkbox" value="Emergency"/>EMERGENCY CENTERS  
<input name="LocType" type="checkbox" value="Out-Patient"/>OUT-PATIENT CENTERS  
<input name="LocType" type="checkbox" value="Facility"/>FACILITIES
</div>
<div class="searchBtnHolder"><a class="searchButton" href="#" type="submit" ><span>GO</span></a></div>
</div>