Суть скрипта. При выборе определенного селекта, он должен оставаться на том же выборе даже после перезагрузки. но тут их аж два и работают они динамично
<script type="text/javascript"><!--
window.onload = function() {
dynamicSelect("Country", "City");
}
//--></script><script type="text/javascript">
function dynamicSelect(id1, id2) {
// Сперва необходимо проверить поддержку W3C DOM в браузере
if (document.getElementById && document.getElementsByTagName) {
// Определение переменных, ссылающихся на списки
var sel1 = document.getElementById(id1);
var sel2 = document.getElementById(id2);
// Клонирование динамического списка
var clone = sel2.cloneNode(true);
// Определение переменных для клонированных элементов списка
var clonedOptions = clone.getElementsByTagName("option");
// Вызов функции собирающей вызываемый список
refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
// При изменении выбранного элемента в первом списке: // вызов функции пересобирающей вызываемый список
sel1.onchange = function() {
refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
}
}
}
// Функция для сборки динамического списка
function refreshDynamicSelectOptions(sel1, sel2, clonedOptions) {
// Удаление всех элементов динамического списка
while (sel2.options.length) {
sel2.remove(0);
}
var pattern1 = /( |^)(select)( |$)/;
var pattern2 = new RegExp("( |^)(" + sel1.options[sel1.selectedIndex].value + ")( |$)");
// Перебор клонированных элементов списка
for (var i = 0; i < clonedOptions.length; i++) {
// Если название класса клонированного option эквивалентно "select" // либо эквивалентно значению option первого списка
if (clonedOptions[i].className.match(pattern1) ||
clonedOptions[i].className.match(pattern2)) {
// его нужно клонировать в динамически создаваемый список
sel2.appendChild(clonedOptions[i].cloneNode(true));
}
}
}
// Вызов скрипта при загрузке страницы
window.onload = function() {
dynamicSelect("Country", "City");
}</script>
<form action="#" method="post">
<select name="Country">
<option value="select">Выберите страну...</option>
<option value="Russia">Россия</option>
<option value="Ukraine">Украина</option>
<option value="Belarus">Беларусь</option>
</select>
<select name="City" id="City">
<option class="select" value="select">Выберите город...</option>
<option class="Russia" value="Moscow">Москва</option>
<option class="Russia" value="SPeterburg">Санкт-Петербург</option>
<option class="Russia" value="Ekaterinburg">Екатеринбург</option>
<option class="Ukraine" value="Kiev">Киев</option>
<option class="Ukraine" value="Sevastopol">Севастополь</option>
<option class="Belarus" value="Minsk">Минск</option>
<option class="Belarus" value="Bobruisk">Бобруйск</option>
</select>
<script> document.getElementById(" Country ").onchange = function() { localStorage.setItem('Country', document.getElementById(" Country ").value); }
if (localStorage.getItem('Country')) { document.getElementById(" Country ").options[localStorage.getItem('Country')].selected = true; } </script>