заменить значение строки запроса URL при изменении раскрывающегося списка

У меня есть раскрывающийся список, который имел двойную роль. Пользователь может перейти на страницу ( 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;
}

6
задан Anjana Sharma 20 January 2012 в 17:13
поделиться