Я написал небольшую вспомогательную функцию, которая работает с любым выбором. Все, что вам нужно сделать, это добавить класс «redirectOnChange» к любому элементу выбора, и это приведет к перезагрузке страницы с помощью нового / измененного параметра querystring, равного id и значению выбора, например:
<select id="myValue" class="redirectOnChange">
<option value="222">test222</option>
<option value="333">test333</option>
</select>
В приведенном выше примере мы добавили бы «? myValue = 222» или «? myValue = 333» (или используя «& amp;», если существуют другие параметры) и перезагрузите страницу.
jQuery:
$(document).ready(function () {
//Redirect on Change
$(".redirectOnChange").change(function () {
var href = window.location.href.substring(0, window.location.href.indexOf('?'));
var qs = window.location.href.substring(window.location.href.indexOf('?') + 1, window.location.href.length);
var newParam = $(this).attr("id") + '=' + $(this).val();
if (qs.indexOf($(this).attr("id") + '=') == -1) {
if (qs == '') {
qs = '?'
}
else {
qs = qs + '&'
}
qs = qs + newParam;
}
else {
var start = qs.indexOf($(this).attr("id") + "=");
var end = qs.indexOf("&", start);
if (end == -1) {
end = qs.length;
}
var curParam = qs.substring(start, end);
qs = qs.replace(curParam, newParam);
}
window.location.replace(href + '?' + qs);
});
});