Funktion in js-Datei blockiert Ausführung der übrigen Funktionen
Enrico
- javascript
Hallo,
ich habe jetzt alle js-Dateien zu einer einzigen zusammengefasst und in dieser Datei u.a. folgende Funktion definiert:
function SteuerungsfelderHinzufuegen()
{
var Felder = ["J", "V"];
var Formular = document.getElementById("Formular");
for (var i = 0, var j = Felder.length; i < j; i++)
{
var Textfeld = document.createElement("input");
Textfeld.setAttribute("type", "text");
Textfeld.setAttribute("name", Felder[i]);
Textfeld.setAttribute("id", Felder[i]);
Textfeld.setAttribute("value", "1");
Formular.appendChild(Textfeld);
}
}
Diese Funktion soll später mal auf folgendes Test-Formular zugreifen:
<form id="Formular" name="Formular" action="" method="get" onsubmit="return AnfrageSenden();">
<input name="Test" id="Test" value="" type="text" onkeydown='Bereinigen ("Test", 2);' onkeyup='Bereinigen ("Test", 2);' onblur='Trim ("Test");'>
</form>
Für mich ist nun nicht nachvollziehbar, dass die anderen Funktionen in der externen js-Datei nur dann ausgeführt werden, wenn ich die oben aufgeführte Funktion rauslösche oder komplett auskommentiere. Sobald ich die Funktion wieder einfüge oder die Auskommentierung wieder lösche, werden die anderen Funktionen nicht mehr ausgeführt.
Erschwerend kommt dazu, dass ich mit dieser Funktion zum jetzigen Zeitpunkt noch gar nicht arbeite und diese derzeit noch nirgends aufrufe.
Die Funktion sieht, auf den ersten Blick, aber korrekt aus, zumindest für mich.
Was ist an der Funktion falsch?
Warum werden die übrigen Funktionen blockiert?
Gruß,
Enrico
Hi,
Für mich ist nun nicht nachvollziehbar, dass die anderen Funktionen in der externen js-Datei nur dann ausgeführt werden, wenn ich die oben aufgeführte Funktion rauslösche oder komplett auskommentiere. Sobald ich die Funktion wieder einfüge oder die Auskommentierung wieder lösche, werden die anderen Funktionen nicht mehr ausgeführt.
Das ist ganz logisch, weil die Interpretation von JavaScript beim ersten Fehler abgebrochen wird.
Die Funktion sieht, auf den ersten Blick, aber korrekt aus, zumindest für mich.
Dann wirf einen zweiten Blick, und zwar in die Fehlerkonsole deines Browsers. (Das hätte eigentlich dein erster Blick sein sollen.)
MfG ChrisB
Hallo ChrisB,
erst mal danke für Deine Antwort.
Dann wirf einen zweiten Blick, und zwar in die Fehlerkonsole deines Browsers
Hm, die Fehlerkonsole bringt mir nur folgende Meldung:
"Die Zeichenkodierung des HTML-Dokuments wurde nicht deklariert. Das Dokument wird in manchen Browser-Konfigurationen mit verstümmeltem Text dargestellt, wenn das Dokument Zeichen außerhalb des US-ASCII-Bereichs enthält. Die Zeichenkodierung der Seite muss im Dokument oder Transferprotokoll deklariert werden."
Gruß,
Enrico
Hi,
Dann wirf einen zweiten Blick, und zwar in die Fehlerkonsole deines Browsers
Hm, die Fehlerkonsole bringt mir nur folgende Meldung:
"Die Zeichenkodierung des HTML-Dokuments wurde nicht deklariert.
Die sollte dir auch was zum Fehler in deinem Script sagen.
Welchen Browser verwendest du zum testen?
MfG ChrisB
Hi,
Die sollte dir auch was zum Fehler in deinem Script sagen.
zum syntaktischen Fehler ja. Zum inhaltlichen Fehler, daß mehrere identische IDs erzeugt würden, wird die Fehlerkonsole vermutlich nichts sagen.
cu,
Andreas
Hallo Andreas,
Zum inhaltlichen Fehler, daß mehrere identische IDs erzeugt würden
Das ist mir nicht klar.
Textfeld.setAttribute("name", Felder[i]);
Textfeld.setAttribute("id", Felder[i]);
D.h. ich definiere doch einmal einen Namen mit dem Wert "J" bzw. "V" und einmal eine ID mit dem Wert "J" bzw. "V".
Inwiefern habe ich hier identische IDs?
Enrico
Hi,
D.h. ich definiere doch einmal einen Namen mit dem Wert "J" bzw. "V" und einmal eine ID mit dem Wert "J" bzw. "V".
Inwiefern habe ich hier identische IDs?
eine ID "J" und eine ID "V" pro Aufruf der Funktion - ab dem 2. Aufruf ...
cu,
Andreas
Hallo Andreas,
eine ID "J" und eine ID "V" pro Aufruf der Funktion - ab dem 2. Aufruf ...
Hmmmmm, verstehe ich immer noch nicht...
1. Aufruf:
2. Aufruf:
Enrico
Hallo,
eine ID "J" und eine ID "V" pro Aufruf der Funktion - ab dem 2. Aufruf ...
Hmmmmm, verstehe ich immer noch nicht...
- Aufruf [...] 2. Aufruf
Es geht nicht um die Durchläufe der Schleife, sondern um Aufrufe der Funktion.
Gruß
Kalk
Die Funktion sieht, auf den ersten Blick, aber korrekt aus, zumindest für mich.
Und auf den Zweiten?
for (var i = 0, var j = Felder.length; i < j; i++)
^^^