Lars Lyhme: Externe JavaScript IN JavaScript aufrufen / Formulareingabe mit for-Schleifen überprüfen

Ich weiß nicht, ob das eine der "Och nee, nicht schon wieder"-Fragen ist; ich habe siw im Archiv jedenfalls nicht gefunden:

1. Wie kann man innerhalb eines JavaScripts auf ein JavaScript in einer externen Datei zugreifen? (Kann man das überhaupt?)

2. Kann man mittels einer for-Schleife Formular-Felder mit (fast) gleichen, nur durch Zahlen unterscheidbare Namen überprüfen? (z.B. tag1, tag2, tag3 usw.)
Mit
var formname = "tag"+i;
if (document.formular.formname.value=="")...

geht's jedenfalls nicht.

MfG
Lars

    1. Wie kann man innerhalb eines JavaScripts auf ein JavaScript in einer externen Datei zugreifen? (Kann man das überhaupt?)

    <script language="JavaScript" src="NAME.js" type="text/javascript"></script>
    einfach die funktionen in eine text-datei schreiben und diese als name.js speichern...

    1. Kann man mittels einer for-Schleife Formular-Felder mit (fast) gleichen, nur durch Zahlen unterscheidbare Namen überprüfen? (z.B. tag1, tag2, tag3 usw.)

    man kann die formularfelder AUCH mit namen ansprechen aber auch mit der jeweiligen zahl....

    <form>
    <input type="text">    <--- Nummer 0
    <input type="text">    <--- Nummer 1
    <input type="text">    <--- Nummer usw....
    </form>

    also kann man die abklappern über
    for(i=0;i< ANZAHL DER INPUT-FIELDS;i++)
        {
        variable[i] = document.form.elements[i].value;
        }
    ABER: inputs, textareas, checkboxen usw... sind ALLES elements !!

    hoffe dir helfen zu können
    c'ya Kai

    1. Tag!

      man kann die formularfelder AUCH mit namen ansprechen aber auch mit der jeweiligen zahl....

      Kann man, aber Du hast die Betonung schon ganz richtig gesetzt, naemlich auf *auch*. Das ist wirklich kein besonders guter Weg, denn sobald Du die Reihenfolge der Felder veraenderst oder zwischenrein noch andere Form-Elemente bringst, musst Du das JavaScript wieder anpassen. Nee, nee, mit Namen geht das doch viel schoener.

      »»  var formname = "tag"+i;
      »»  if (document.formular.formname.value=="")...

      Richtig waere:

      var formname = "tag" + i;
        if (document.formular.elements[formname].value == "") ...

      oder einfach:

      if (document.formular.elements["tag" + i].value == "") ...

      Bye, Calocybe

      1. Richtig waere:

        var formname = "tag" + i;
          if (document.formular.elements[formname].value == "") ...

        oder einfach:

        if (document.formular.elements["tag" + i].value == "") ...

        Bye, Calocybe

        Hi Calocybe,
        wie realisiert man aber dann nach Deiner Lösung die gewünschte for-Schleife ???

        Bye
        Timothy

        1. Hi!

          wie realisiert man aber dann nach Deiner Lösung die gewünschte for-Schleife ???

          Verstehe ich nicht, ich denke, die for-Schleife gibt es laengst und nur die Adressierung der einzelnen Inputs ist das Problem? Wie auch immer, irgendwoher musst Du doch wissen, wieviele solche Inputs Du hast, und dann schreibst Du eben (z.B. bei 5 Stueck):

          for (i=0; i<5; i++)
              if (document.formular.elements["tag" + i].value == "") {
                  // here goes your stuff
              }

          und fertig.

          Calocybe

          P.S. Falls Du bei 1 anfaengst zu zaehlen, muss es heissen:
              for (i=1; i<=5; i++)

          1. dann schreibst Du eben (z.B. bei 5 Stueck):

            for (i=0; i<5; i++)
                if (document.formular.elements["tag" + i].value == "") {
                    // here goes your stuff
                }

            Hmm , stimmt - allerdings ist das ja nicht "meine" Schleife - siehe mein anderes Posting.

            Bye
            Timothy

            1. Hi Timothy

              Hmm , stimmt - allerdings ist das ja nicht "meine" Schleife - siehe mein anderes Posting.

              Oops, stimmt ja! Ist mir gar nicht aufgefallen, dass Du nicht Lars bist. ;-)

              So long

    2. <script language="JavaScript" src="NAME.js" type="text/javascript"></script>
      einfach die funktionen in eine text-datei schreiben und diese als name.js speichern...

      Das funktionert doch nur in HTML!
      Aber das fällt mir ein...

      document.write("<script language=JavaScript src=name.js type=text/javascript></script>");

      Könnte das gehen?

      Lars

    1. Kann man mittels einer for-Schleife Formular-Felder mit (fast) gleichen, nur durch Zahlen unterscheidbare Namen überprüfen? (z.B. tag1, tag2, tag3 usw.)
      Mit

    »»  var formname = "tag"+i;
    »»  if (document.formular.formname.value=="")...

    geht's jedenfalls nicht.

    Hi,
    angenommen, es geht wirklich nicht so (sihe oben) - dann würde ich folgendes machen. Bei den in Frage kommenden Tags bei onChange eine Funktion aufrufen und in dieser zumindest den value in ein Array schreiben und über dieses Array dann deine Schleife mit den Prüfroutinen laufen lassen. Übergabeparameter z.B. this.value und nr (mit nr = zu verwendender Index im Array).

    z.B. onChange="Doit(this.value,1). Eventuell auch nur this damit Du auch auf die anderen eigenschaften des zugehörigen Objectes zugreifen kannst.

    Vielleicht hilft Dir dieser Ansatz.
    Bye
    Timothy