Ashura: IE: Setzen von (default)Selected-Eigenschaft

Beitrag lesen

Hallo.

Ich lasse mir hier gerade per JS ein Formular in den Dokumentenbaum einhängen, aber der IE hat ein Problem damit, die selected-Eigenschaft abhängig vom Rückgabewert des Trinitätsoperators zu setzen.

Hier einmal ein Beispielcode:

window.onload = function() {  
  var testArr = ['Foo', 'Bar', 'Baz', 'Qux'];  
  var testSel = 'Baz';  
  
  var myForm = document.createElement('form');  
  var mySelect = document.createElement('select');  
  
  for (var i = 0; i < testArr.length; i++) {  
    var myOption = new Option(testArr[i],  
                              testArr[i].toLowerCase(),  
                              (testArr[i] == testSel ? true : false));  
  
    mySelect.options[mySelect.options.length] = myOption;  
  }  
  
  myForm.appendChild(mySelect);  
  document.body.appendChild(myForm);  
}

Die Ausgaben von testArr[i] und testSel sind wie erwartet beim Wert „Baz“ identisch und dennoch setzt der IE nicht die defaultSelected-Eigenschaft.
Füge ich den gleichen Operator für den vierten Parameter vom Option-Objekt ein, wird hier dann zwar die selected-Eigenschaft gesetzt, aber ein Element zu früh. In obigem Beispiel wird damit also „Bar“ an Stelle von „Baz“ vorselektiert. Das gleiche passiert auch, wenn ich explizit die selected-Eigenschaft folgendermaßen setze:

myOption.selected = (testArr[i] == testSel ? true : false);

Wo liegt mein (oder des IEs) Fehler?

Einen schönen Sonntag noch.

Gruß, Ashura

--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
„It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
[HTML Design Constraints: Logical Markup]