Всё просто. Есть пустой выпадающий список. В какой-то момент понадобится динамически задать в нём опции и выбрать необходимую. Данный пример отлично работает в Лисе и в Опере. МСИЕ почему-то наотрез отказывается устанавливать
selectedIndex для списка.
<script>
function f1() {
s = document.getElementById("sel");
o = document.createElement("option");
o.value = 10;
o.innerHTML = "Text 10";
s.appendChild(o);
o = document.createElement("option");
o.value = 20;
o.innerHTML = "Text 20";
s.appendChild(o);
o = document.createElement("option");
o.value = 30;
o.innerHTML = "Text 30";
s.appendChild(o);
s.selectedIndex = 1;
}
</script>
<body onload="f1();">
<select id="sel">
</select>
</body>
Интересный момент, если прямо перед установкой
selectedIndex сделать какой-то вывод, например
alert('bla-bla-bla');, то индекс корректно установится.
Здравствуйте, trogvar_zt, Вы писали:
_>Всё просто. Есть пустой выпадающий список. В какой-то момент понадобится динамически задать в нём опции и выбрать необходимую. Данный пример отлично работает в Лисе и в Опере. МСИЕ почему-то наотрез отказывается устанавливать selectedIndex для списка.
Надо так добавлять ( через options )
Так по идее должно работать без проблем
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Sample #1233</title>
<script type="text/javascript">
function f1() {
s = document.getElementById("sel");
for ( var i = 0; i < 10; i++ )
{
var o = document.createElement("option");
o.value = i;
o.text= "O" + i;
s.options.add(o);
}
s.selectedIndex = 5;
}
</script>
</head>
<body onload="f1();">
<select id="sel">
</select>
</body>
</html>
Похожие проблемы
http://www.howtocreate.co.uk/wrongWithIE/?chapter=Add+Syntax
Да и вообще это космос какой-то — для браузеров это очень сложная задача — динамически добавлять опции
Тут вот, например, по другому извращаются
http://lists.evolt.org/archive/Week-of-Mon-20040315/156650.html
WBR,
Anton
When money talks... nobody checks the grammar.
Здравствуйте, trogvar_zt, Вы писали:
_>Всё просто. Есть пустой выпадающий список. В какой-то момент понадобится динамически задать в нём опции и выбрать необходимую. Данный пример отлично работает в Лисе и в Опере. МСИЕ почему-то наотрез отказывается устанавливать selectedIndex для списка.
_>_><script>
_>function f1() {
_> s = document.getElementById("sel");
_> o = document.createElement("option");
_> o.value = 10;
_> o.innerHTML = "Text 10";
_> s.appendChild(o);
_> o = document.createElement("option");
_> o.value = 20;
_> o.innerHTML = "Text 20";
_> s.appendChild(o);
_> o = document.createElement("option");
_> o.value = 30;
_> o.innerHTML = "Text 30";
_> s.appendChild(o);
_> s.selectedIndex = 1;
_>}
_></script>
_><body onload="f1();">
_> <select id="sel">
_> </select>
_></body>
_>
_>Интересный момент, если прямо перед установкой selectedIndex сделать какой-то вывод, например alert('bla-bla-bla');, то индекс корректно установится.
<script>
function f1() {
s = document.getElementById("sel");
o = document.createElement("option");
o.value = 10;
o.innerHTML = "Text 10";
s.appendChild(o);
o = document.createElement("option");
o.value = 20;
o.innerHTML = "Text 20";
o.selected = true;
s.appendChild(o);
o = document.createElement("option");
o.value = 30;
o.innerHTML = "Text 30";
s.appendChild(o);
}
</script>
<body onload="f1();">
<select id="sel">
</select>
</body>
В IE 6.0 точно работает