Показать сообщение отдельно
  #3 (permalink)  
Старый 09.11.2012, 22:35
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

<select id="ret" name="pet" multiple="multiple" size="10">
    		<optgroup label="Группа 1">
			    <option value="19">Россия</option>
			    <option value="20">Узбекистан</option>
			    <option value="21">Казахстан</option>
			    <option value="22">Азербайджан</option>
    		</optgroup>
    		<optgroup label="Группа 2">
			    <option value="23">Австралия</option>
			    <option value="24">Австрия</option>
			    <option value="25">Алжир</option>
			    <option value="26">Ангилья</option>
			    <option value="27">Англия</option>
			    <option value="28">Ангола</option>
			    <option value="29">Антигуа</option>
    		</optgroup>
		</select>
		<script>
			var listbox = document.getElementById('ret');
			listbox.addEventListener('mousedown', function(e){
				var target = e.target;
				switch (target.nodeName)
				{
					case 'OPTION':
						var groupNode = target.parentNode;
						break;
					case 'OPTGROUP':
						var groupNode = target;
						break;
					default:
						return;
				}
				Array.prototype.forEach.call(this.options, function(option){
					option.selected = option.parentNode == groupNode;
				});
				this.focus();
				e.preventDefault();
			});
		</script>


Нужно немного доточить, если нужна поддержка IE8.

Последний раз редактировалось danik.js, 10.11.2012 в 09:18.
Ответить с цитированием