Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: IE7 и замена innerHTML у select-элемента
 
 автор: DDK   (24.12.2007 в 01:54)   письмо автору
 
 

Доброй ночи, господа.

Возникла следующая проблема: в IE7 невозможно заменить содержимое select-элемента старым добрым способом - заменой innerHTML. Во всех браузерах оно работает, а в IE7 после замены innerHTML список select'а просто очищается.

Погуглил на эту тему, увидел, что в IE7 много проблем с Select'ом, но своей проблемы не нашёл :(

P.S. Контекст задачи банален - получаю Ajax'ом список элементов для Select'а, пытаюсь их вставить в селект-бокс.

   
 
 автор: RV   (24.12.2007 в 09:56)   письмо автору
 
   для: DDK   (24.12.2007 в 01:54)
 

а может не вставлять в селект бокс а с нуля вставлять этот селект бокс?
на сервере формируется полностью код селект бокса и вставляется

   
 
 автор: DDK   (24.12.2007 в 10:10)   письмо автору
 
   для: RV   (24.12.2007 в 09:56)
 

Пробовал так. Генерил полностью код селектбокса, заменял его через outerHTML. В IE7 и опере этот способ работет, а в FF нет.

   
 
 автор: DDK   (24.12.2007 в 10:18)   письмо автору
 
   для: DDK   (24.12.2007 в 10:10)
 

Всё, спасибо, решил-таки проблему методом вставки в innerHTML ячейки таблицы полного кода select-бокса ! :) Во всех браузерах работает.

   
 
 автор: SHAman   (24.12.2007 в 12:26)   письмо автору
 
   для: DDK   (24.12.2007 в 10:18)
 

Вообще, правильнее было бы формировать структуру DOM. Создать объект option, добавить ему атрибут value, создать текстовую ноду с пунктом списка, добавить эту ноду в созданный option. Если делать так, то оно работает всегда и везде, под любыми браузерами.

   
 
 автор: DDK   (24.12.2007 в 19:33)   письмо автору
 
   для: SHAman   (24.12.2007 в 12:26)
 

Но так неудобно делать, когда Ajax'ом получаешь список. Так можно было бы делать, если бы у меня все комбинации хранились в заранее построеном массиве.

   
 
 автор: SHAman   (24.12.2007 в 22:54)   письмо автору
 
   для: DDK   (24.12.2007 в 19:33)
 

1) не вижу препятствий, чтобы аяксом отправлять с сервера валидный xml, который можно совершенно легко и просто фигануть куда надо, с сохранением структуры DOM
2) кто мешает передавать JS-массив с сервера? Можно передать структурину типа:

opts = {
    val:text,
    val2:text,
    ......
}

потом получать ее на клиенте, оживлять eval-ом и юзать на здоровье.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования