Enrico: Funktion in js-Datei blockiert Ausführung der übrigen Funktionen

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

  1. 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

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    1. 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

      1. 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

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
        1. 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

          --
          Warum nennt sich Andreas hier MudGuard?
          O o ostern ...
          Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
          1. 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

            1. 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

              --
              Warum nennt sich Andreas hier MudGuard?
              O o ostern ...
              Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
              1. 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:

                • i ist 0
                • 1x input mit Namen "J" und ID "J"

                2. Aufruf:

                • i ist 1
                • 1x input mit Namen "V" und ID "V"

                Enrico

                1. Hallo,

                  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

                  Es geht nicht um die Durchläufe der Schleife, sondern um Aufrufe der Funktion.

                  Gruß
                  Kalk

  2. 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++)  
                        ^^^