У меня есть раскрывающийся список, который имел двойную роль. Пользователь может перейти на страницу ( http: //mysite/events/Pages/default.aspx ) прямо и использовать раскрывающийся список, либо они могут сначала выполнить поиск и отфильтровать результаты поиска, выбрав раскрывающийся список . URL-адрес первого случая будет иметь вид http: //mysite/events/Pages/default.aspx? Hos = Carmel и Второй случай URL http: //mysite/events/Pages/default.aspx? Kwd = health & type = Events & hos = Carmel Это то, что я делаю прямо сейчас, но он ведет себя странно и делает что-то подобное с url http://mysite.events/Pages/default.aspx? hos = Crown & hos = Carmel
Итак, если пользователь выбрал carmel из раскрывающегося списка в первый раз и решил, что он / она хочет найти Индианаполис, то он должен либо заменить 'Carmel' на indianapolis, либо заменить всю строку запроса "& hos = Carmel "с" & hos = Indianapolis "для второго случая и"? Hos = Carmel "с"? Hos = Indianapolis "для первого сценария
$(".hospitalDropDown").change(function(e){
var querystring=window.location.search;
var currentURL=$(location).attr('href');
if(location.href.indexOf('?') == -1) {
window.location.href= 'http://mysite/events/Pages/default.aspx'+'?hos='+$(this).val();
}
else{
window.location.href = ( $(this).val() == "All Hospitals" ) ? 'http://mysitesite/events/Pages/default.aspx': location.href +'&hos='+ $(this).val(); }
)};
Я нашел отличный код, который использует регулярное выражение для обработки строки запроса, но я не понять, как работает регулярное выражение .. Как я могу использовать sth, как показано ниже, в моем случае?
function replaceQueryString(url,param,value) {
var re = new RegExp("([?|&])" + param + "=.*?(&|$)","i");
if (url.match(re))
return url.replace(re,'$1' + param + "=" + value + '$2');
else
return url + '&' + param + "=" + value;
}