Как кэшировать данные из <select>?

188
25 июля 2017, 16:29

Как кэшировать данные из <select>?

Как сохранять value из select в кэш и выводить их на другой станице?

Answer 1

Вам нужен не кеш, а куки... SetCookie для установки значений в память браузера. GetCookie для получения значений из памяти. https://learn.javascript.ru/cookie В статье описана установка и чтение куки

// возвращает cookie с именем name, если есть, если нет, то undefined
function getCookie(name) {
  var matches = document.cookie.match(new RegExp(
    "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=            
([^;]*)"
  ));
  return matches ? decodeURIComponent(matches[1]) : undefined;
}
document.cookie = "userName=Vasya";
getCookie("userName")
Answer 2

Как вариант, также можно использовать localStorage. При выборе элемента списка записывать в него ключ, со значением выбранного элемента. Затем, в любом нужном месте проверять наличие этого ключа, и если он есть, то активным элементом списка ставить его значение.

Пример на jsfiddle

var mySelect = document.getElementById('mySelct'); 
// При выборе элеменат списка 
mySelect.onchange = function () { 
   item = this.options[this.selectedIndex].value; 
   console.log('Выбран', item); 
   // Записываем в localStorage значение value выбранного элемента	 
   localStorage.setItem('activeSelect', item); 
} 
 
/* ... А где надо проверяем, есть ли в localStorage ключ activeSelect */ 
 
var activeSelect = localStorage.getItem('activeSelect'); 
if(activeSelect) { 
    console.log('Есть в localStorage', activeSelect) 
    mySelect.value = activeSelect;  
}
<select id="mySelct"> 
  <option value="1">Раз</option> 
  <option value="2">Два</option> 
  <option value="3">Три</option> 
</select>

И конечно, когда больше нет необходимости хранить этот ключ, стоит удалить его:

localStorage.removeItem('activeSelect');
READ ALSO
Grunt выдает ошибку при сборке в корневой папки bootstrap

Grunt выдает ошибку при сборке в корневой папки bootstrap

Пытаюсь собрать тестовый проектУстановил node, клонировал bootstrap с GitHub

235
Мой вопрос требует правок [требует правки]

Мой вопрос требует правок [требует правки]

Внёс все правкиНадеюсь, теперь вам нравится вопрос

274
Как получить HWID

Как получить HWID

Добрый день - подскажите как получить HWID пк - сразу скажу, что код должен выполняться в dll - то есть нету ни Form,Сonsole - способ с ManagementObjectSearcher не подходит...

393
Повторная установка свойств в DataTemplate при смене активной вкладки в TabControl

Повторная установка свойств в DataTemplate при смене активной вкладки в TabControl

В программе используется TabControl и каждая его вкладка представлена юзерконтролом с таблицей DataGrid

287