Lange Selectbox löschen (IE/Moz)
Markus Treiber
- javascript
0 wahsaga0 rfb0 Markus Treiber0 Markus Treiber
Hallo zusammen,
leider wurde das "ursprüngliche Thema" bereits ins Archiv verschoben, und dort kann man ja bekanntlicher Weise nicht antworten.
[link=http://forum.de.selfhtml.org/archiv/2007/3/t147749/#m958308]
Neue Erkenntnis:
Ich habe das Problem gefunden, weiss aber nicht, wie es zu lösen ist. In meinem Formular befinden sich diverse DIVs zur Positionierung von Elementen. So ist z.B. das besagte Select-Objekt innerhalb eines Div-Objektes namens "form2". Wie kann man nun die object.ReplaceChild Methode anwenden, damit dies funktioniert?
Hier der Auszug aus dem HTML-File:
<form name="frm" id="frm">
<div name="form2" id="form2">
<select name="Auswahl" id="Auswahl">
<option value="test">hallo</option>
</select>
</div>
</form>
Hier der Auszug aus dem Javascript
var sneu=document.createElement("select");
var salt=document.frm["mat_select"];
for (var i = 0; i < 5; i++)
{
var neuer_eintrag = new Option(i,i,false,false);
sneu.options[sneu.length] = neuer_eintrag;
}
//?????
//salt.form.replaceChild(sneu,salt);
salt.form.replaceChild(sneu,document.frm.form2.document.mat_select);
//Dies ist die Problem-Zeile...
sneu.name=salt.name;
sneu.id=salt.id;
sneu.onchange=salt.onchange;
[...]
hi,
Wie kann man nun die object.ReplaceChild Methode anwenden, damit dies funktioniert?
Welche Verständnisprobleme hast du denn mit der Beschreibung der Methode replaceChild?
salt.form.replaceChild(sneu,document.frm.form2.document.mat_select);
//Dies ist die Problem-Zeile...
Und wo ist die Problembschreibung?
gruß,
wahsaga
Moin
was verbirgt sich hinter
"mat_select"
?
Gruß
rfb
Also, ich habe bei dem Beispiel-code mein Original und die Beispiel aus dem alten Thread durcheinander gebracht, sorry.
mat_select ist das Select-Objekt, das im Beispiel mit Auswahl angesprochen wird.
Das Problem ist, dass ReplaceChild funktioniert
=> salt.form.replaceChild(sneu,salt);
wenn kein DIV innerhalb der Form steht. Nun habe ich dummerweise das Probl., dass ich DIVs zur Positionierung brauchen, und bekomme den ReplaceChild-Befehle nicht mehr hin. Es kommt immer: Node not found.
Danke für eurer Mühen...
Moin
Das Problem ist, dass ReplaceChild funktioniert
=> salt.form.replaceChild(sneu,salt);
was einfach daran liegen dürfte, dass das select-Element kein direktes Kind (_Child_) des Formulars sondern des DIVs ist
Gruß
rfb
Moin
vergaß zu bemerken:
Nun habe ich dummerweise das Probl., dass ich DIVs zur Positionierung brauchen
du kannst andere Elemente genau so positionieren, CSS funktioniert nicht nur mit DIVs.
Gruß
rfb
Problem gelöst...
Folgende Möglichkeiten...
1. Anstelle v. ReplaceChild (InsertBefore+RemoveNode) nutzen
2. Span-Element um das Select-Objekt und mit innerHTML das komplette Select austauschen.
Mit beiden Varianten funktioniert das Löschen und neu Aufbauen des Select-Objekt mit mehreren Tausend Options in unter 30 Sek.
Wenn jemand ein ähnliches Problem hat, einfach per mail melden.