hi zusammen,
ich programmiere schon seit jahren (js allerdings erst seit ein paar tagen) , aber so einen fehler hab ich noch nicht gesehen, und es hat mich ewigkeiten gekostet darauf zu kommen, das das überhaupt der fehler ist.......
versuch ich auf ein und dasselbe DOM-element zweimal zuzugreifen (nur lesend) hängt mein skript, mach ich das nur einmal klappt alles.......
gegeben folgende einfache HTML-seite bestehend aus drei listboxen von denen eine unsichtbar ist, bei klicken auf die erste listbox soll die zweite listbox rechts mit einigen strings aus der versteckten letzten checkbox gefüllt werden:
sowie folgende simple js-funktion:
das klappt soweit, aber halt nur wenn ich obiges document.write-statement genau einmal mache.......mache ich das in der funktion zweimal, also z.b.:
klappt gar nichts, dass heisst mein script hängt nach der ersten ausgabe, obwohl die beiden write-statements völlig identisch sind!?!
wie kann das sein? sobald ich in dem script versuche of DOM-elemente zweimal LESEND zuzugreifen schmiert das script ab?
ich bin nicht gerade der firmste in JS, aber das erscheint mir völlig bizarr...
hab ich irgendwas falsch macht bzw. was an DOM falsch verstanden?
danke für jede hilfe..........
ich programmiere schon seit jahren (js allerdings erst seit ein paar tagen) , aber so einen fehler hab ich noch nicht gesehen, und es hat mich ewigkeiten gekostet darauf zu kommen, das das überhaupt der fehler ist.......
versuch ich auf ein und dasselbe DOM-element zweimal zuzugreifen (nur lesend) hängt mein skript, mach ich das nur einmal klappt alles.......
gegeben folgende einfache HTML-seite bestehend aus drei listboxen von denen eine unsichtbar ist, bei klicken auf die erste listbox soll die zweite listbox rechts mit einigen strings aus der versteckten letzten checkbox gefüllt werden:
Code:
<html> <head> <title>Test</title> <script src="selectAgent.js" type="text/javascript"> </script> </head> <body> Waehlen Sie die Wirkstoffklasse <select name="component_vi_medikamente_wirkstoffklasse_ID_1" class="CobaltSelect"> <option onClick="selectAgent(this.value)" value=""></option> <option onClick="selectAgent(this.value)" value="2">ACE - Hemmer</option> <option onClick="selectAgent(this.value)" value="9">Aspirin</option> <option onClick="selectAgent(this.value)" value="3">AT1 - Antag.</option> <option onClick="selectAgent(this.value)" value="7">Beta-Blocker</option> <option onClick="selectAgent(this.value)" value="1">Clopidogrel</option> <option onClick="selectAgent(this.value)" value="8">Diuretika</option> <option onClick="selectAgent(this.value)" value="10">GPIIb/IIIa - Antag.</option> <option onClick="selectAgent(this.value)" value="4">Kalzium - Antag.</option> <option onClick="selectAgent(this.value)" value="11">Katecholamine</option> <option onClick="selectAgent(this.value)" value="5">orale Nitrate</option> <option onClick="selectAgent(this.value)" value="6">Statine</option> </select> Waehlen Sie den Wirkstoff <select name="wirkstoff" size="1"> </select> </form> <select name="component_vi_medikamente_wirkstoff_ID_1" class="CobaltSelect" style="display:none"> <option value="2;2">ACE - Hemmer --- Ramipril</option> <option value="2;3">ACE - Hemmer --- Enalapril</option> <option value="7;10">Beta-Blocker --- Metoprolol</option> <option value="7;11">Beta-Blocker --- Carvedilol</option> <option value="7;12">Beta-Blocker --- Nebivolol</option> </select> </body> </html>
Code:
function selectAgent(pAgentClassID) { /* agentClassID is passed when the function is called */ //check input if(pAgentClassID == ""){ alert("Keine Wirkstoffklasse ausgewählt!"); } else { document.write("option-anzahl :" + document.getElementsByName("component_vi_medikamente_wirkstoff_ID_1")[0].length); } }
Code:
function selectAgent(pAgentClassID) { /* agentClassID is passed when the function is called */ //check input if(pAgentClassID == ""){ alert("Keine Wirkstoffklasse ausgewählt!"); } else { document.write("option-anzahl :" + document.getElementsByName("component_vi_medikamente_wirkstoff_ID_1")[0].length); document.write("option-anzahl :" + document.getElementsByName("component_vi_medikamente_wirkstoff_ID_1")[0].length); } }
klappt gar nichts, dass heisst mein script hängt nach der ersten ausgabe, obwohl die beiden write-statements völlig identisch sind!?!
wie kann das sein? sobald ich in dem script versuche of DOM-elemente zweimal LESEND zuzugreifen schmiert das script ab?
ich bin nicht gerade der firmste in JS, aber das erscheint mir völlig bizarr...
hab ich irgendwas falsch macht bzw. was an DOM falsch verstanden?
danke für jede hilfe..........
Kommentar