| 
	| 
	
	| 
		
	| 
			
			 
			
				02.07.2014, 07:43
			
			
			
		 |  
	| 
		
			|  | Новичок на форуме       |  | 
					Регистрация: 02.07.2014 
						Сообщений: 6
					 
		
 |  |  
	| 
				Не разобрался с применением js и куки для нескольких select
			 Здравствуйте! 
Нужен совет.
 
Есть select с option
 
<select name="select" onchange="fn()">
              <option>1</option>
              <option>2</option>
              <option>3</option>
	</select>
И js
 
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(){
               var elem= document.getElementsByName('select')[0]
               var currentOptionIndex= elem.selectedIndex;
                setCookie('OptionIndex', currentOptionIndex);
            }
            
            
            window.onload=function(){
                var elem= document.getElementsByName('select')[0];
                elem.selectedIndex=getCookie('OptionIndex') || 1;
            }
Не понял как мне применить еще для одного select и option, js выше.
			
			
	
			
			
			
			
			
				  |  |  
	| 
		
	| 
			
			 
			
				03.07.2014, 01:08
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 27.05.2010 
						Сообщений: 33,150
					 
		
 |  |  
	| tart,
    
<!DOCTYPE HTML>
<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <script>
        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;
            }
        }
    </script>
</head>
<body>
    <select name="select" onchange="fn(this)">
        <option>1</option>
        <option>2</option>
        <option>3</option>
    </select>
    <select name="select2" onchange="fn(this)">
        <option>1</option>
        <option>2</option>
        <option>3</option>
    </select>
</body>
</html>
 
			
			
	
			
			
			
			
			
				  |  |  
	| 
		
	| 
			
			 
			
				23.07.2014, 23:45
			
			
			
		 |  
	| 
		
			|  | Аспирант       |  | 
					Регистрация: 04.03.2014 
						Сообщений: 76
					 
		
 |  |  
	| рони, а как можно сделать, чтобы всем селектам, содержание которых берется из куков, но не является первым (selectedIndex), присваивался какой-нибудь новый класс? |  |  
	| 
		
	| 
			
			 
			
				23.07.2014, 23:54
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 27.05.2010 
						Сообщений: 33,150
					 
		
 |  |  
	| Globus,попробуйте самостоятельно решить этот вопрос в 52 строке if() {} ; кука есть и она не 1 то мастачим класс.
 |  |  
	| 
		
	| 
			
			 
			
				24.07.2014, 00:48
			
			
			
		 |  
	| 
		
			|  | Аспирант       |  | 
					Регистрация: 04.03.2014 
						Сообщений: 76
					 
		
 |  |  
	| рони, 
Спасибо! Я пробую такую конструкцию         
 
if(elem.selectedIndex > 0) { document.getElementsByTagName('select').AddClass('22')} ;
если индекс выбранного option не равен нулю, то присваивается класс 22
 
но не уверен, что эта конструкция хотя бы отчасти  правильна, вас не затруднит указать на ошибку? |  |  
	| 
		
	| 
			
			 
			
				24.07.2014, 01:05
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 27.05.2010 
						Сообщений: 33,150
					 
		
 |  |  
	| Globus,
    когда доки читать начнёте 
 
if(c !== undefined && c !== '1') {elem.className = '22'}; |  |  
	| 
		
	| 
			
			 
			
				24.07.2014, 01:50
			
			
			
		 |  
	| 
		
			|  | Аспирант       |  | 
					Регистрация: 04.03.2014 
						Сообщений: 76
					 
		
 |  |  
	| работает! спасибо! |  |  
	| 
		
	| 
			
			 
			
				26.07.2014, 21:00
			
			
			
		 |  
	| 
		
			|  | Аспирант       |  | 
					Регистрация: 04.03.2014 
						Сообщений: 76
					 
		
 |  |  
	| Рони, подскажите, пожалуйста, в этого же скрипта можно ли присваивать "22" класс селекту, у которого индекс option  перестал быть равным = '1' ? |  |  
	| 
		
	| 
			
			 
			
				27.07.2014, 20:56
			
			
			
		 |  
	| 
		
			|  | Аспирант       |  | 
					Регистрация: 04.03.2014 
						Сообщений: 76
					 
		
 |  |  
	| А главное - Важный вопрос: можно ли, чтобы куки с каждого селекта записывались не при onchange="fn()" , а при нажатии на одну кнопку, например, <input type="button" name="save" value="saveall"> ? |  |  
	| 
		
	| 
			
			 
			
				27.07.2014, 21:00
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 27.05.2010 
						Сообщений: 33,150
					 
		
 |  |  
	| Globus,можно сделайте циклом обход селектов ... сам сам ... пора уже
 |  |  |  |