[JS] [IE6] Aktualizacja elementu <select>

0

Mam sobie formularz w którym jest element <select> i wyskakujące okno w którym modyfikuję dane w bazie na podstawie których ten <select> jest generowany. W jaki sposób mam dane w istniejącym już <select> w window.opener zaktualizować?

Próbowałem podstawiać innerHTML i nie działa (w IE6, w Firefoksie działa). Pomyślałem o zabawie DOM, ale to wymagało by dużej ilości poleceń generowanych żeby dodać dużą liczbę danych.

I pytanie pokrewne - w jaki sposób JavaScriptowo wybrać jakąś opcję z <select>? W Firefoksie działa przypisanie value, jak i wybór selectedIndex ręcznie, w IE6 żadna z tych opcji...

0

...moze mam jakis dziwny IE6, ale wszystkie operacje mi na nim dzialaja:

<script>
function update() {
  with (document.getElementById('slct')) {
    options.length = 0;
    var i = 0; 
    while (++i <= 3) {
      options[options.length] = new Option('Opcja ' + i, i);
    }
    options.selectedIndex = 1;
    options[0].text = 'Dupa 1';
    options[0].value = 'd1';
  }
}
</script>
<select id="slct" onchange="alert(this.value)">
  <option value="a">Aaa</option>
  <option value="b">Bbb</option>
  <option value="c">Ccc</option>
</select>
<button onclick="update()">Zmień</button>
0

Tja. A u mnie się cuda dzieją pod IE, a pod Fx wszystko w porządku.

Mam w popupie otwierany formularz, który jest wysyłany i po wysłaniu po naciśnięciu na przycisk jeżeli jest kod:

function foo()
{				
	var seller = window.opener.document.getElementById('seller');				seller.options[0] = new Option('test', 'test');
}

to seller.options.length ma długość 0 (a ma większą, co wiem), z kolei druga linia kwitowana jest przez "Błąd: Serwer wywołał wyjątek" w konsoli JS i tyle by było roboty.

Czy to może być spowodowane tym, że odwołuję się do window.opener.document? Ale z kolei odwołanie takie samo do pewnego inputa i pobranie czy ustawienie jego wartości działa bez problemu...

[added]
To jest magiaaaa! Zaczęło działać (widzieć jakiekolwiek elementy z #seller). Nie wiem jak, samo zaczęło. Jednak new Option() dalej jest kwitowane "Serwer wywołał wyjątek".

[added]
Tak, to jest spowodwane tym, że odwołuję się do window.opener.document. http://support.microsoft.com/kb/237831 I do tego to nie błąd, a taki ficzer, zaplanowana sytuacja. Ech.

http://www.mredkj.com/tutorials/tutorial008.html

1 użytkowników online, w tym zalogowanych: 0, gości: 1