Юрий В.
1013 сообщений
#16 лет назад
Добрый день уважаемые товарищи по цеху.

Суть проблемы для человека, который шарит в яваскрипте будет ясна сразу.

o.responseText - возвращает перечень <option>

к примеру :
<option>Выберите героя</option>
<option value="t1">Чебурашка</option>
<option value="t2">Крокодил Гена</option>
<option value="t3">Шапокляк</option>

такой вот кусок. Я его хочу вставить в select

вставляю так:
document.getElementById('selectId'.innerHTML=o.responseText;

Во всех браузерах работает замечательно, кроме IE. На форумах нашёл ответ что это баг IE. Он вырезает первый <option > . Надо сделать так, чтобы не вырезал. Я думаю что можно как-то распарсить список option и по одному добавить циклом в селект или как иначе.. это не важно.

т.е. на входе у вас есть строка из optionов, на выходе он добавляются в select (во всех! браузерах).. Надеюсь ясно изложил задачу, нет - стучите, уточню.

Помощь оплачу.

Зараннее спасибо всем откликнувшимся.

п.с. Сделал такой же проект только что. На форуме публикую т.к. срочно надо, надеюсь не нарушаю правил сервиса.
Михаил В.
2195 сообщений
#16 лет назад
Если по-простому (без парсинга), то как-то так:

if(document.all){
document.getElementById('selectId').innerHTML='<option>Preved IE</option>'+o.responseText;
document.getElementById('selectId').outerHTML=document.getElementById('selectId').outerHTML;
}else document.getElementById('selectId').innerHTML=o.responseText;
Тут М.
626 сообщений
#16 лет назад
Sir_Michael
Поясните, зачем идет присваивание
document.getElementById('selectId').outerHTML=document.getElementById('selectId').outerHTML;
Михаил В.
2195 сообщений
#16 лет назад
Demiurh
Сначала фиксится баг с пропавшим option, затем баг с пропавшим содержимым select - он автором топика не упомянут, но он есть

вот тут много:
Цитата:
http://muffinresearch.co.uk/archives/2006/07/19/bug-when-creating-select-options-using-innerhtml-in-ie/

Ссылка форумом портится
Тут М.
626 сообщений
#16 лет назад
Ясно. А если через jQuery работать баги будут?
Михаил В.
2195 сообщений
#16 лет назад
Для интереса проверил вставку через .html() - бага нет.
Tan Sa
9 сообщений
#16 лет назад
Если используется динамический select то для осла проще использовать pasteHTML