Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.01.2015, 14:15
Новичок на форуме
Отправить личное сообщение для amvie Посмотреть профиль Найти все сообщения от amvie
 
Регистрация: 27.01.2015
Сообщений: 2

LocalStorage к select
Суть скрипта. При выборе определенного селекта, он должен оставаться на том же выборе даже после перезагрузки. но тут их аж два и работают они динамично

<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>
Ответить с цитированием
  #2 (permalink)  
Старый 27.01.2015, 15:18
Аспирант
Отправить личное сообщение для d.skuratovich Посмотреть профиль Найти все сообщения от d.skuratovich
 
Регистрация: 19.09.2014
Сообщений: 73

Даже не знаю в чем проблема, но читать не буду пока не начнешь пользоваться сервисами вроде jsFiddle
Ответить с цитированием
  #3 (permalink)  
Старый 27.01.2015, 15:30
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

amvie, даже после перезагрузки он остается на том же выборе и без скрипта.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Select, optionl, и автоматический выбор Rorbi Элементы интерфейса 2 29.05.2014 15:38
SQL запрос. Как делать SELECT с условием SELECT Duda.Ml1986@gmail.com Серверные языки и технологии 16 13.01.2014 16:09
Метод для конвертирования едениц px, em, %, pt. jegit Элементы интерфейса 0 07.03.2013 16:15
Как сохранить предыдущее значение select? MaxD Общие вопросы Javascript 3 21.07.2011 12:36
Проблема с динамическим формированием select elepsion jQuery 1 31.10.2010 14:31