Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Динамическое добавление выпадающего списка В IE (https://javascript.ru/forum/css-html-internet-explorer/22793-dinamicheskoe-dobavlenie-vypadayushhego-spiska-v-ie.html)

stepennwolf 01.11.2011 01:34

Динамическое добавление выпадающего списка В IE
 
Добрый вечер, имеется проблема такого вида: На странице есть таблица выводящая данные из БД. В определенной ячейке каждой строки таблицы имеется кнопка, при нажатии на которую, в соседней ячейке, вместо обычного текста появляется выпадающий список.
Список создается динамически, путем копирования уже имеющегося на странице такого списка <select> в innerHTML ячейки <td></td>.
Прототип имеющегося списка такой:
<select name="name-val" id="id-va">
    <option value="0">Значение 1</option>
    <option value="1">Значение 2</option>
    <option value="2">Значение 3</option>
    <option value="3">Значение 4</option>
</select>


Содержимое списка получаю таким образом:
var listContainers = document.getElementsByName("user-type").item(0).innerHTML


Далее создаю новый список в ячейке и заношу туда содержимое полученного ранее списка:
var inputSelect = document.createElement( "select" );
inputSelect.innerHTML = listContainers;


После этого список появляется и работает корректно во всех браузерах, НО, как часто бывает, в IE этот список выводится пустым. При просмотре содержимого нового списка через alert:
alert(inputSelect.innerHTML)

В IE он почему-то равен:

"Значение 1</option>
<option value="1">Значение 2</option>
<option value="2">Значение 3</option>
<option value="3">Значение 4</option>"

Т.е. без открывающего тега "<option value="1">". Хотя даже и с таким кодом список пуст.
Возможно кто-то сталкивался с подобной проблемой, решение необходимо срочно?

trikadin 01.11.2011 02:20

nasqad, причём здесь это?

stepennwolf, вы создаёте список в списке. То есть, сначала вы создаёте элемент select, а потом через innerHTML добавляете к нему в потомки select. Неудивительно, что ie глючит.

stepennwolf 01.11.2011 19:51

nasqad спасибо за помощь, не знал о методе cloneNode(), теперь заработало)))
trikadin удивительно/неудивительно но тот способ который я описал выше создавал валидный список и работал корректно на всех браузера, а вот в IE капризничал, возможно есть какие-то особенности о которых я не знаю. Я не профи в DOM модели.

UDN 04.11.2011 17:36

Я наверно не выспался, но почему ваш код не работал только в IE((
Цитата:

<select name="name-val" id="id-va">
var listContainers = document.getElementsByName("user-type")
откуда взялся "user-type", и что возвращает listContainers.length ?


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