|
|
|
| Доброй ночи, господа.
Возникла следующая проблема: в IE7 невозможно заменить содержимое select-элемента старым добрым способом - заменой innerHTML. Во всех браузерах оно работает, а в IE7 после замены innerHTML список select'а просто очищается.
Погуглил на эту тему, увидел, что в IE7 много проблем с Select'ом, но своей проблемы не нашёл :(
P.S. Контекст задачи банален - получаю Ajax'ом список элементов для Select'а, пытаюсь их вставить в селект-бокс. | |
|
|
|
|
|
|
|
для: DDK
(24.12.2007 в 01:54)
| | а может не вставлять в селект бокс а с нуля вставлять этот селект бокс?
на сервере формируется полностью код селект бокса и вставляется | |
|
|
|
|
|
|
|
для: RV
(24.12.2007 в 09:56)
| | Пробовал так. Генерил полностью код селектбокса, заменял его через outerHTML. В IE7 и опере этот способ работет, а в FF нет. | |
|
|
|
|
|
|
|
для: DDK
(24.12.2007 в 10:10)
| | Всё, спасибо, решил-таки проблему методом вставки в innerHTML ячейки таблицы полного кода select-бокса ! :) Во всех браузерах работает. | |
|
|
|
|
|
|
|
для: DDK
(24.12.2007 в 10:18)
| | Вообще, правильнее было бы формировать структуру DOM. Создать объект option, добавить ему атрибут value, создать текстовую ноду с пунктом списка, добавить эту ноду в созданный option. Если делать так, то оно работает всегда и везде, под любыми браузерами. | |
|
|
|
|
|
|
|
для: SHAman
(24.12.2007 в 12:26)
| | Но так неудобно делать, когда Ajax'ом получаешь список. Так можно было бы делать, если бы у меня все комбинации хранились в заранее построеном массиве. | |
|
|
|
|
|
|
|
для: DDK
(24.12.2007 в 19:33)
| | 1) не вижу препятствий, чтобы аяксом отправлять с сервера валидный xml, который можно совершенно легко и просто фигануть куда надо, с сохранением структуры DOM
2) кто мешает передавать JS-массив с сервера? Можно передать структурину типа:
opts = {
val:text,
val2:text,
......
}
|
потом получать ее на клиенте, оживлять eval-ом и юзать на здоровье. | |
|
|
|