option шире select'a + выбор данных 
		
		
		
		Дано: форма с ограничением по ширине.  
	Чтобы можно было без проблем пользоваться select'ами, использован вот этот хак: http://www.hedgerwow.com/360/dhtml/u...th/bk/demo.php Все работает. НО: используется еще скрипт автоподстановки данных (javascript: кликаешь на кнопку - она автоматом подставляет данные в форму, в том числе выбирает нужный option в select'е). Код: 
<script language="JavaScript" src="/includes/dropdown_menu_hack.js"></script> 
<script type="text/javascript"> 
function InsCtn(Params){ 
    var response = Params.split("|"); 
    document.getElementById("City"+response[0]).options[response[1]].selected=true 
    } 
</script>
И в странице: 
<select name="City1" id="City1" style="width: 100; behavior:expression(window.dropdown_menu_hack!=null?window.dropdown_menu_hack(this):0);"> 
    <option value="1">Город1 
    <option value="2">Город2 
    <option value="3">Город3 
... 
    <option value="n">ГородN 
</select> 
 
<input type="button" name="NewAddContacts1" value="Вставить данные в select" style="width:70" onClick="InsCtn('1|3')">
При клике на button в select'e должен выбираться город3. Так вот, в ИЕ все это художество не работает. А в Опере и ФФ - без проблем. Так как с JavaScript'ом я слаб, прошу помощи. Либо помогите решить проблему с ИЕ, либо посоветуйте другой способ раздвинуть option'ы, не меняя ширины select'a. И чтобы можно было вышеуказанным скриптом подставлять значения.  | 
	
		
 >> При клике на button в select'e должен выбираться город3. 
	Да ладно! У "Город3" опция имеет индекс 2, он никак не может быть выбран. Ни в FF, ни в Опере ни в IE. Во всех браузерах скрипт работает нормально. Но лучше BOM не использовать, а использовать DOM (при выставлении checked вроде глюков нет, а вот при изменении|добавлении опций могут быть проблемы)  | 
	
		
 Прошу прощения, наврал в коде, когда его упрощал для форума. 
	Действительно, Город3 не выберется. Выберется Город4. А скрипт и правда работает 0_о Ничего не понимаю... Правда, теперь постоянная неопознанная ошибка вылетает. Буду искать.  | 
	
		
 Я вообще ничего не понимаю. 
	Два компа: настольный/Win2003/IE6 и ноут/XP/IE6. Лежит все на ноуте, на нем же поднята веб-служба (не знаю, надо ли это, но тем не менее). Пробую на настольном. При загрузке страницы выскакивает "Неопределенная ошибка". Подстановка значений работает. На ноуте при загрузке - тишина, но при попытке подставить значения - ошибка "document.getElementById(...).options(...) - есть null или не является объектом". Убейте меня... Кстати, я в первом посте писал "с JavaScript'ом я слаб", потому прошу пояснить - как сделать не BOM, а DOM. Изменение и добавление option'ов мне не нужно - только selected.  | 
	
		
 Еще одно наблюдение. 
	На ноуте все, как описано выше. На настольном если все закрыть, а потом зайти на страницу - ошибка, как на ноуте. F5 - ошибка, как описано выше про настольный.  | 
	
		
 SARD, 
	таг <option> надо закрывать </option>'ом 
function InsCtn(Params){
	var response = Params.split("|");
	var cN = document.getElementById('City'+response[0]).childNodes
	var l = cN.length
	for( var i=0; i<l; i++){
		if( !!cN[i].selected ) cN[i].selected = false
	}
	cN[response[1]].selected = true
}
 | 
	
		
 Закрыл option'ы. Толку ноль. 
	Вставил код вместо своего. На ноуте-ХР-IE6 заргужается без ошибок, на настольном-2003-IE6 ругается на неопределенную ошибку. При попытке клацнуть на кнопку (везде) - ругается "Объект не поддерживает это свойство или метод" на строку, в которой "cN[response[1]].selected = true". *здесь_должен_быть_бьющийся _башкой_об_стену_смайл*  | 
	
		
 Мой огород можно существенно упростить 
	
function InsCtn(Params){
		    var response = Params.split("|");
		    document.getElementById('City'+response[0]).selectedIndex = response[1]
}
 | 
	
		
 Все равно не работает. 
	На ноуте-ХР-IE6 заргужается без ошибок, на настольном-2003-IE6 ругается на неопределенную ошибку. При клике на кнопку: на ноуте приключается белый пустой select, после F5 в нем встает не то (почему-то) значение, после еще одного F5 - первый option. на настольном - выбирается нужный option, после любого количества F5 он же и остается выбранным.  | 
	
		
 мОЖНО И подругому: 
	
<script type="text/javascript"> 
function InsCtn()
{ 
var valuer=3; // Задание value 
City1.value = valuer;
} 
</script>
И в странице: 
<select name="City1" id="City1" style="width: 100; behavior:expression(window.dropdown_menu_hack!=null?window.dropdown_menu_hack(this):0);"> > 
    <option value="1">Город1 
    <option value="2">Город2
    <option value="3">Город3
    <option value="4">Город4
    <option value="5">Город5
</select> 
 
<input type="button" style="width:200;  name="NewAddContacts1" value="Вставить данные в select" style="width:70" onClick="InsCtn();">
 | 
| Часовой пояс GMT +3, время: 18:29. |