Ho un menu a discesa con doppio ruolo. L'utente può accedere direttamente alla pagina (http://mysite/events/Pages/default.aspx) e utilizzare il menu a discesa oppure è possibile effettuare prima una ricerca e il filtro ricerca ulteriormente selezionando il menu a discesa. Primo caso URL sarà come http://mysite/events/Pages/default.aspx?hos=Carmel e secondo URL Caso http://mysite/events/Pages/default.aspx?kwd=health&type=Events&hos=Carmel Questo è quello che sto facendo in questo momento, ma si comporta strano e fa sth come questo per url http://mysite.events/Pages/default.aspx?hos=Crown&hos=Carmelsostituire il valore querystring dell'URL sul cambio del menu a discesa
Quindi, se l'utente selezionato Carmelo dal menu a discesa della prima volta e ha deciso di voler cercare Indianapolis, allora dovrebbe sostituire "Carmel" con indianapolis o sostituire l'intera querstring "& hos = Carmel" con "& hos = Indianapolis" per il secondo caso e "? hos = Carmel "con"? Hos = Indianapolis "per il primo scenario
$(".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(); }
)};
Ho trovato un codice elegante che utilizza regex per gestire la querystring ma non capisco come funziona la regex .. Come posso usare sth come di seguito nel mio caso?
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;
}
Trascurato, in realtà hai risposto alla domanda - forse dovresti spostare la risposta davanti alla spiegazione – mplungjan
@mplungjan Buon punto. Riorganizzato la mia risposta come hai suggerito –
Inoltre ti suggerisco di cambiare window.location dato che window.location.href è la rappresentazione di stringa dell'URL corrente - quindi cambia the.href ma imposta l'oggetto posizione – mplungjan