Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > <select> в ie


Автор: Onis 21.7.2008, 22:20
Добрый вечер Винград.

Есть готовая форма с тегами:

Код

<select name="EditContactJob" id="EditContactJob">
    
</select>


Есть скрипт которые из XML выдерает варианты к этому селекту:

Код

var department="";

con = httpRequest.responseXML.getElementsByTagName('department');
    
for(var i=0;i<con.length;i=i+1)
{
    if(con[i].getAttribute('selected')=='selected')
    {
        department+="<option value='"+con[i].firstChild.data+"' selected='selected'>"+con[i].firstChild.data;
    }
    else
    {
        department+="<option value='"+con[i].firstChild.data+"'>"+con[i].firstChild.data;
    }
}


Есть момент где я сформированные options  вставляю в тэги селекта:

Код

document.getElementById('EditContactDepartment').innerHTML = department;


Работает в последней опере и файр фоксе. Но во втором файрфоксе и ишаке select остается пустым. Проверял, department нормально формируется так что как я понял проблема в этом моменте -  "document.getElementById('EditContactDepartment').innerHTML = department;" 

 smile 

Автор: bars80080 21.7.2008, 22:27
а может лучше было бы создавать через new Option() и соответствующем присвоением?

Автор: Onis 21.7.2008, 22:38
 smile 
Если это возможно. Потому что самостоятельно пробовал разные варианты, только хуже становилось.
Или линк на методы.

Автор: bars80080 22.7.2008, 00:09
ну, выглядит это примерно так:

Код

    mva = new Array('qwe', 'asdf', 'zxx');
    var apm = 'zxx'; s_apm = 0;
    weba = new Array;
    for(i = 100; i > 0; i--) document.transfer.m_air.options[i] = null; 
    document.transfer.m_air.options[0] = new Option('');
    for(i = 1; i <= mva.length; i++) { 
        weba[i] = new Option(mva[i-1], (i));
        document.transfer.m_air.options[i] = weba[i]; if(weba[i].value == apm) s_apm = i; }
    document.transfer.m_air.options[s_apm].selected = true;
 надёрганный пример из реально действующего скрипта, но тут надо конечно проверить и переложить на твои данные

new Option(mva[i-1], (i)); - первое значение text, а второе value элемента оптионс
transfer - имя формы, m_air - имя селекта

Автор: Onis 22.7.2008, 00:38
ага... ну переделать под себя мне мозгов хватит. Огромное спасибо, что бы я без вас (Винграда) делал.

Автор: Onis 22.7.2008, 17:00
Всё работает. спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)