H-P Ortner: Erklärung von options.length in SELFHTML

Beitrag lesen

Hallo Stefan!

Ist das ein Widerspruch oder habe ich da etwas falsch verstanden?

Eigentlich nicht. Denn das Loeschen besteht nicht darin, der Eigenschaft length einen neuen Wert zuzuweisen. length kann nicht - auch beim Loeschen nicht - ein sogenannter left-value sein, also etwas, das in einer Zuweisung links steht.

So hätte ich den Satz "Alternativ ist es auch möglich, dem Option-Array eine neue Länge zuzuweisen" aber verstanden.

Ich habe Dein Beispiel also so verändert, wie ich den Satz verstanden habe:

<html><head><title>Test</title>
<script type="text/javascript">
</script>
</head><body>
<form name="Testform" action="">
<select name="Auswahl" size="8">
<option>Auswahl 1</option>
<option>Auswahl 2</option>
<option>Auswahl 3</option>
<option>Auswahl 4</option>
<option>Auswahl 5</option>
</select>
<br>
<input type="button" value="Loeschen" onClick="document.Testform.Auswahl.options.length=1">
</form>
</body></html>

Das funktioniert (habe es mit Mozilla 1.5 und IE 6.0 getestet)
Als nachgesehen beim w3c
Im DOM 1 ist es readonly
http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-94282980
Im Dom 2 ist es nicht so eindeutig erklärt:
http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109/html.html#ID-94282980

Das Thema hat mich beschäftigt weil ich ein Select mit Werten aus einem anderen Frame fülle.
Der Hinweis, dass das Anfügen neuer options-Elemente in einem anderen Frame mit IE5.0 nicht funktioniert, hat mir sehr geholfen. Ich habe also eine Funktion in das Dokument eingebaut, die die Daten in der Auswahl anfügt. Die kann ich aus dem anderen Frame auch ansprechen.
Für das Löschen ist das nicht erforderlich, weil aktuelle Browser und der IE5.0 die Zuweisung length= 1 ("--Bitte wählen Sie aus--") scheinbar unterstützen.

Viele Grüße
H-P Ortner