Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не разобрался с применением js и куки для нескольких select (https://javascript.ru/forum/misc/48392-ne-razobralsya-s-primeneniem-js-i-kuki-dlya-neskolkikh-select.html)

рони 31.08.2017 19:04

indeec14,
https://javascript.ru/forum/jquery/5...tml#post394089
<form action="http://">
//тут ваши элементы
<input name="" type="reset" value="">
</form>

indeec14 31.08.2017 19:38

Спасибо.

<input name="" type="reset" value="">
пробовал, сбрасывает форму, но после перезагрузки страницы опять селекты на своих местах, как записались в куки. Я как раз ищу вариант для того, чтобы аналогичной кнопочкой (если такой вариант существует) созданные куки очищать, сам пример взял из Вашего поста про запись селектов -
function getCookie(name) {
            var matches = document.cookie.match(new RegExp(
                "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
            ))
            return matches ? decodeURIComponent(matches[1]) : undefined
        }

        function setCookie(name, value, props) {
            props = props || {}
            var exp = props.expires
            if (typeof exp == "number" && exp) {
                var d = new Date()
                d.setTime(d.getTime() + exp * 3153600000)
                exp = props.expires = d
            }
            if (exp && exp.toUTCString) {
                props.expires = exp.toUTCString()
            }

            value = encodeURIComponent(value)
            var updatedCookie = name + "=" + value
            for (var propName in props) {
                updatedCookie += "; " + propName
                var propValue = props[propName]
                if (propValue !== true) {
                    updatedCookie += "=" + propValue
                }
            }
            document.cookie = updatedCookie

        }

        function fn(elem) {
            setCookie(elem.name, elem.selectedIndex);

        }


        window.onload = function () {
            var elems = document.getElementsByTagName('select');
            for (var i = 0; i < elems.length; i++) {
                var elem = elems[i],
                    c = getCookie(elem.name);

                elem.selectedIndex = c !== undefined ? c : 1;
            }

        }

рони 31.08.2017 19:54

indeec14,
ищите примеры с localStorage, они лаконичнее чем cookie

indeec14 31.08.2017 22:03

Цитата:

Сообщение от рони (Сообщение 463271)
indeec14,
ищите примеры с localStorage, они лаконичнее чем cookie

Благодарю! Да, действительно крутая штука, оказывается. Опережая свои вопросы, нашел хорошую шпаргалку по localstorage, с минимумом знаний и навыков за час сделал все, что было нужно. А с куками целый день проторчал в гугле и крайне мало понятной для себя информации нашел...

Оставлю это здесь, может кому пригодится: http://shpargalkablog.ru/2013/06/localStorage.html

Nexus 01.09.2017 10:09

Цитата:

Сообщение от indeec14
А с куками целый день проторчал в гугле и крайне мало понятной для себя информации нашел...

Там особо понимать-то и нечего, по сути это обычное хранилище информации на стороне клиента с некоторыми нюансами.
Работать с ними также просто, как и локальным хранилищем.

var c=cookie('CookieName');//Получить значение куки
if(!c)
   cookie('CookieName','CookieValue',1);//Если куки нет, то создать куку на сутки
else
    cookie('CookieName','-deleted-',-1);//Удалить куку


function cookie(name,value,days){
	if(value){
		var expires="";
		if(days){
			var date=new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			expires="; expires="+date.toGMTString();
		}
		document.cookie=name+"="+value+expires+"; path=/";

		return true;
	}else{
		var nameEQ=name+"=";
		var ca=document.cookie.split(';');
		for(var i=0;i<ca.length;i++){
			var c=ca[i];
			while(c.charAt(0)==' ') c=c.substring(1,c.length);
			if(c.indexOf(nameEQ)==0) return c.substring(nameEQ.length,c.length);
		}

		return null;
	}
};


Часовой пояс GMT +3, время: 19:43.