Eintrag zu einer select Liste hinzufügen
Andreas Nagel
- java
Hallo zusammen
auf meiner Seite soll eine Auswahl Liste stehen mit dieser durch das Anklicken der Einträge Funktionen ausgeführt werden sollen. Doch erst einmal sollen da ja Einträge reinkommen!
im HTML steht
<form name="LinkDaten" method="post" onsubmit="return Check()" onreset="CloseDialog()">
<table id="Inhalt" border="0" cellspacing="0">
<tr>
<td style="width:170px; vertical-align:top" rowspan="9">
<select style="width:130px; height:280px" size="20" id="Auswahl"></select>
und im Javascript will ich nun Text einfügen:
document.getElementById("Auswahl").options[i].text ="blablabla"
doch kommt stets die ie mit der Meldung "ist null oder kein Objekt" und der FifreFox mit "TypeError" und zeigt die Zeile.
Also was mache ich bitte falsch?
Danke Gruß Andreas
<table id="Inhalt" border="0" cellspacing="0">
<tr>
<td style="width:170px; vertical-align:top" rowspan="9">
<select style="width:130px; height:280px" size="20" id="Auswahl"></select>
Lager CSS in externe Dateien aus.
> `document.getElementById("Auswahl").options[i].text ="blablabla"`{:.language-javascript}
> Also was mache ich bitte falsch?
Du musst ein neues option-Element <http://de.selfhtml.org/javascript/objekte/document.htm#create_element@title=erstellen> und an dein select-Element <http://de.selfhtml.org/javascript/objekte/node.htm#append_child@title=anhängen>
MfG
bubble
Hallo bubble
Du musst ein neues option-Element und an dein select-Element anhängen
Sorry aber das select Element existiert doch schon im hatml. Und das was ich in javascript gezeigt habe ist eine Schleife mit i das bei 0 beginnt. Und ich finde nichts anderes als das schreiben eines neuen Elements mit einem neuen Index. Ich würde gerne wissen wie ich ein Element dem select Element hinzufügen kann.
Danke Gruß Andreas
Hi,
Ich würde gerne wissen wie ich ein Element dem select Element hinzufügen kann.
Ja, dann lies es doch einfach nach …
MfG ChrisB
Hallo ChrisB
und Vielen Dank für Deine Hilfe. Doch jetzt sitze ich vor dem Problem wie ich die Einträge aus der Liste wieder herausbekomme?
Danke Gruß Andreas
Hi,
Doch jetzt sitze ich vor dem Problem wie ich die Einträge aus der Liste wieder herausbekomme?
Vielleicht bekommst du es hin, auch noch den nachfolgenden Abschnitt zu lesen …?
MfG ChrisB
Hallo ChrisB
Ja das hatte ich auch schon mal gesehen, doch will es nicht funktionieren! Es handelt sich hierbei um ein Fenster das nach Aufruf die Liste füllen und beim schließen wieder leeren soll. Es variiert auch der Inhalt der Leiste je nach Aufruf der Datei. Und jetzt ist das Problem das der Inhalt nie verschwindet. Und das bei folgenden Zeilen:
for (var i = 0; i < document.getElementById("Auswahl").length+1; i++)
{
document.getElementById("Auswahl").options[0] = null
alert(i)
}
Dank dem alert kann ich ja zuschauen wie die Zeilen verschwinden, doch wird das iframe wieder angezeigt und die Liste wird neu befüllt, sind die alten Einträge wieder zu sehen.
Wie bekomme ich diese Einträge ganz raus so das immer nur eine Funktion neue Einträge einfügt?
Danke Gruß Andreas
Hi,
Dank dem alert kann ich ja zuschauen wie die Zeilen verschwinden, doch wird das iframe wieder angezeigt und die Liste wird neu befüllt, sind die alten Einträge wieder zu sehen.
Was denn plötzlich und auf einmal für ein Iframe …?
MfG ChrisB
Hallo ChrisB
es funktioniert ja jetzt.
Es wird ein array in einem iframe erstellt mit den IDs der Links die in eine Formular angezeigt werden sollen. Und aus dem array heraus wird der Text in einem select gesammelt und durch das anklicken in dem select kann man ja durch den Index im array nachschauen welcher Link gemeint ist.
Und ich glaubte zu lesen das man für das array nur pop(), sprich ohne Index schreiben könne um es leeren zu können. Doch jetzt schreibe ich auch dieses in die Schleife und damit funktionierts. Was mich halt wundert ist dass es nie zu Fehlermeldungen kam.
Und jetzt schreibe ich eine while Schleife:
while (document.getElementById("Auswahl").length > 0)
{
document.getElementById("Auswahl").options[0] = null
top.LinkIDs.pop(0)
}
Doch frage ich mich ob damit für den Browser nicht viel zu arbeiten sei. Und eine rückwärz zählende Schleife wollte ich nicht hinbekommen.
Aber auf jeden Fall läuft es jetzt. Und danke für Deine Hilfe.
Gruß Andreas
Und ich glaubte zu lesen das man für das array nur pop(), sprich ohne Index schreiben könne um es leeren zu können. Doch jetzt schreibe ich auch dieses in die Schleife und damit funktionierts. Was mich halt wundert ist dass es nie zu Fehlermeldungen kam.
Guck dir mal http://de.selfhtml.org/javascript/objekte/array.htm#shift@title=Array.shift und http://de.selfhtml.org/javascript/objekte/array.htm#pop@title=Array.pop an ;)
Doch frage ich mich ob damit für den Browser nicht viel zu arbeiten sei. Und eine rückwärz zählende Schleife wollte ich nicht hinbekommen.
for(i=array.length-1;i>=0;i--)
tuIrgendwas();
http://de.selfhtml.org/javascript/objekte/array.htm#splice@title=Array.splice kann man benutzen um Array-Elemente zu löschen. Dann brauchst du nicht mal eine Schleife. Alternativ könnte eigentlich auch ein array = [];
möglich sein.
MfG
bubble
Hallo ChrisB
aber ach ja sorry. Denn der Fehler liegt in meiner Funktion welche die Einträge sammelt. Ich dachte eine Variante gehabt zu haben ein array zu leeren, doch waren dort noch die alten Einträge drin. Aber das es so nie zu einem Fehler Fehlermeldung gekommen ist, wundert mich schon.
Aber jetzt funktionierts ja. Und dafür vielen Dank
Gruß Andreas
Hi,
und im Javascript will ich nun ...
und warum stellst du die Frage dann im Themengebiet Java ein?
Ciao,
Martin
Om nah hoo pez nyeetz, Der Martin!
und warum stellst du die Frage dann im Themengebiet Java ein?
Bei eingeschaltetem JavaScript erhält man zudem bei der Wahl einiger (3) Themenbereiche einen Hinweis:
Hinweis: Java und JSP beziehen sich auf die plattformübergreifende Compilersprache. Bitte nicht mit JavaScript verwechseln!
Hinweis: Vergiss nicht, Namen und Version der von dir verwendeten Datenbank anzugeben!
Hinweis: HTTP ist das Netzwerkprotokoll für den Datenaustausch zwischen Client und Server. Bitte nicht mit HTML verwechseln!
Matthias