Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.11.2015, 01:16
Аспирант
Отправить личное сообщение для optsar Посмотреть профиль Найти все сообщения от optsar
 
Регистрация: 02.11.2015
Сообщений: 30

localStorage.getItem
Приветствую всех, задача такая, нужно у нескольких checkboxов сохранить их активность в localStorage, я в этом деле новичок, поэтому не знаю как сделать правильно.

Например есть 2 checkboxа (по факту их будет больше)

<input type="checkbox" class="stat" name="column-1" value="1" checked >
<input type="checkbox" class="stat" name="column-2" value="2" checked >


функция записывающая в localStorage

$(".stat").change(function (event) {
	
    if (this == event.target) {
		
	var key = this.name;

		  if ($(this).is(":checked"))  {
			localStorage.setItem(key, "true");
		  } else {
			localStorage.setItem(key, "false");
		  }
    }  
	
});




И вот здесь я делаю проверку

if (localStorage.getItem('column-1') == "true") {
  $("input[name = column-1]").attr("checked");
} else {

  $("input[name = column-1]").removeAttr("checked");
}

if (localStorage.getItem('column-2') == "true") {
  $("input[name = column-2]").attr("checked");
} else {

  $("input[name = column-2]").removeAttr("checked");
}



Ну если бы было всего 2 checkboxа, то я бы больше не стал бы головову ломать что дальше делать, но у меня должно быть больше checkboxов,
подскажите как сделать правильную проверку для большого кол-ва checkbox
Ответить с цитированием
  #2 (permalink)  
Старый 02.11.2015, 01:58
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

$('input.stat').each(function(){
 if (localStorage.getItem(this.name) == "true") {
 	this.checked = "checked";
    } else {
        this.removeAttribute("checked");
    }
});
Ответить с цитированием
  #3 (permalink)  
Старый 02.11.2015, 02:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

localStorage + checkbox сохранить выбранные чекбоксы
optsar,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>

<input type="checkbox" class="stat" name="column-1" value="1"  checked >
<input type="checkbox" class="stat" name="column-2" value="2"  checked >


<script>
(function(b) {
    var e = document.querySelectorAll(b),
        a = localStorage.getItem(b),
        a = (a = JSON.parse(a)) || (a = {}, localStorage.setItem(b, JSON.stringify(a)));
    [].forEach.call(e, function(c, d) {
        void 0 !== a[d] && (c.checked = a[d]);
        c.addEventListener("change", function() {
            a[d] = c.checked;
            localStorage.setItem(b, JSON.stringify(a))
        })
    })
})(".stat");
</script>

</body>

</html>

Последний раз редактировалось рони, 03.01.2017 в 02:12.
Ответить с цитированием
  #4 (permalink)  
Старый 02.11.2015, 02:52
Аспирант
Отправить личное сообщение для optsar Посмотреть профиль Найти все сообщения от optsar
 
Регистрация: 02.11.2015
Сообщений: 30

Спасибо всем !
Ответить с цитированием
  #5 (permalink)  
Старый 27.05.2016, 04:08
Аспирант
Отправить личное сообщение для Galyanov Посмотреть профиль Найти все сообщения от Galyanov
 
Регистрация: 23.01.2011
Сообщений: 47

ok

Последний раз редактировалось Galyanov, 27.05.2016 в 15:24.
Ответить с цитированием
  #6 (permalink)  
Старый 29.05.2024, 13:43
Новичок на форуме
Отправить личное сообщение для Alex_Lemurski Посмотреть профиль Найти все сообщения от Alex_Lemurski
 
Регистрация: 29.05.2024
Сообщений: 4

Добрый день!
Я попробовал ваши скрипты в рамках своего кода, и знаете все работает!
значения выпадающего списка и чекбокса сохраняются.
Но есть нюанс! дело в том что выпадающий список и чекбокс формируются (заполняются значениями) через цикл в html, т.к. содержания для этих форм будет динамичным, я не могу жестко сделать эти спики построчно. И тут такое дело: если я на одном объекте (странице) делаю все изменения, которые успешно сохранятся благодаря вашим скриптам, но на странице другого объекта по умолчанию сохраняются те же пункты из предыдущего объекта. Вот так
Я из БД силами Spring Boot вывожу формы на экран в html (thymeleaf)

Последний раз редактировалось Alex_Lemurski, 29.05.2024 в 13:51.
Ответить с цитированием
Ответ



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

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