Я перехватываю значения всех отмеченных флажков и перехожу на 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="Hospital" ИЛИ «Офис» ИЛИ «Объект», если установлены эти три флажка ... и выводит результаты на основе выбора. Я пытаюсь получить строку запроса после k = и использовать ее, чтобы установить проверенное состояние соответствующих флажков на 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 () {}, а массив selectedOnes возвращает значения в виде: Больница, ИЛИ Офис, ИЛИ Средство ...
<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>