Jens: alle Formularfelder erhalten (Syntax), sowie Prüfung

Hallo, ich habe mal meine JS - Test-Versuche angehaengt.
Ich habe ein Formular, welches eine unbestimmte Menge von Eingabefeldern hat (dynamisch vom User bestimmt):
immer in dem Muster MNG_??, LIEFDAT_?? , die ?? sind die Zaehler.

Jetzt soll geprueft werden, ob die MNG_??-Felder immer mit einer Zahl gefuellt sind.
Das Datum soll immer groesser als das aktuelle sein.

Leider sind meine JS-Kentnisse nicht so intensiv und mit der CFML-Umgebung, die ich fuer dynamische HTML-Seiten nutze, kann ich diese Abfrage schwer realisieren.

Kann mir jemand helfen?
Danke Jens

<html><head><title>Test</title>
<script language="JavaScript">
function(A)
{
/* ich hatte versucht einfach mal zu testen, wie ich die Namen aller Formularfelder erhalte */
for(i=0;i<document.Testform.length;++i)
  {
  document.write("<br>Elementname: " + document.forms[0].elements[i].name);
  document.write(", Elementtyp: " + document.forms[0].elements[i].type);
  }
}
function(B)
/* mit dieser Schleife hier dachte ich das ich zum Ziel komme, aber auch Fehlanzeige */
{
  var z = 1;
for (EN in document.LIEF.elements) /* soll alle Elementennummern im Formular LIEF wiedergeben */
{
  if ("document.LIEF." + EN + ".value" == "") /* ist das mit dem EN so richtig? */
  {
   alert ("Fehler!");
  }
  else
  {
   break;
  }
else
  }
   for(i=0;i<"document.LIEF." + EN + ".value.value.length";++i)
    if(document.Formular.Alter.value.charAt(i) < "0" document.Formular.Alter.value.charAt(i) > "9")
    {  
    alert ("Fehler!");
    }
  }
  z++;
}
}
function(C)
{
if (document.LIEF.elements[1].name == "MNG_1" )
{
  alert ( "Element 0 heisst:" + document.LIEF.elements[1].name );
}
}

</script>
</head><body>
<p>Frage: es soll erreicht werden: <br>
1. dass alle MNG_?? - Felder auf eine Zahl ueberprueft werden<br>
2. das die Datumsfelder in der Zukunft liegen.

</p>
<form action="Bestell_2.cfm" name="LIEF" onSubmit="return C();">
<INPUT type="text" name="MNG_1" value="0" size="3" maxlength="5"> Stück am (Datum:) <input type="Text" name="LIEFDAT_1" value="01.01.00" size="8" maxlength="8"><br>
<INPUT type="text" name="MNG_2" value="0" size="3" maxlength="5"> Stück am (Datum:) <input type="Text" name="LIEFDAT_2" value="01.01.00" size="8" maxlength="8"><br>
<INPUT type="text" name="MNG_3" value="0" size="3" maxlength="5"> Stück am (Datum:) <input type="Text" name="LIEFDAT_3" value="01.01.00" size="8" maxlength="8"><br>
<input type="submit" name="Absenden">
</form>
</body></html>

  1. Hi! ;-)

    function(A)

    Meinst du vielleicht "function A()" ?

    {
    for(i=0;i<document.Testform.length;++i)

    document.forms[0].elements.length

    {
      document.write("
    Elementname: " + document.forms[0].elements[i].name);
      document.write(", Elementtyp: " + document.forms[0].elements[i].type);
      }

    »»  }

    Da gibt's nix auszusetzen ;-)

    function(B)

    Wie oben: function B() !!!

    {
      var z = 1;

    »»  for (EN in document.LIEF.elements) /* soll alle Elementennummern im Formular LIEF wiedergeben */

    Hab noch nie was von EN gelesen, was heisst/macht das ?
    Jedenfalls hab ich auch noch nie eine solche for-Schleife gesehen, aber kann ja sein dass es sowas auch gibt, alles ist möglich!

    »»  {

    if ("document.LIEF." + EN + ".value" == "") /* ist das mit dem EN so richtig? */

    wie gesagt, noch nie was von EN gehört!

    { alert ("Fehler!"); }
      else
      { break; }

    Hier hört if auf!!!

    »»  else

    }

    Ist also zuviel, gehört weg, ansonsten Syntax error :-(

    for(i=0;i<"document.LIEF." + EN + ".value.value.length";++i)

    Wieder dieses EN, value.value?? Tippfehler?
    Ausserdem fehlt die geschwungene Klammer!!!!

    if(document.Formular.Alter.value.charAt(i) < "0" document.Formular.Alter.value.charAt(i) > "9")

    • Zahlen werden ohne Anführungszeichen geschrieben
    • charAt(i) gibt das Zeichen an der Stelle i zurück, kann man also nur prüfen ob == "0" oder != "0", aber < "0" macht hier keinen Sinn!

    { alert ("Fehler!"); }
      }
      z++;

    »»  }

    }

    Probier mal meine Funktion aus:

    function C()
    {
       laenge=document.forms[0].elements.length;
       for (i=0; i < laenge; i++) {
        alert( "Element "+i+" \n- Name:" +
           document.LIEF.elements[i].name + "\n- Value: " +
           document.LIEF.elements[i].value + "\n- Typ:" +
           document.LIEF.elements[i].type);
       }
       return false;
    }

    </script>
    </head><body>

    Frage: es soll erreicht werden:

    1. dass alle MNG_?? - Felder auf eine Zahl ueberprueft werden

    Habs ausprobiert, ich hoffe du weisst was damit anzufangen ;-)

    1. das die Datumsfelder in der Zukunft liegen.

    Ich weiss nicht 100% aber ich glaub die Funktion heisst getDate()! Das gibt dir das aktuelle Datum, speichere es in eine Variable, zerlege es in Tag, Monat, Jahr, und schreib einfach was grösseres in die Textfelder rein!

    </p>
    <form action="Bestell_2.cfm" name="LIEF" onSubmit="return C();">
    <INPUT type="text" name="MNG_1" value="0" size="3" maxlength="5"> Stück am (Datum:) <input type="Text" name="LIEFDAT_1" value="01.01.00" size="8" maxlength="8">

    <INPUT type="text" name="MNG_2" value="0" size="3" maxlength="5"> Stück am (Datum:) <input type="Text" name="LIEFDAT_2" value="01.01.00" size="8" maxlength="8">

    <INPUT type="text" name="MNG_3" value="0" size="3" maxlength="5"> Stück am (Datum:) <input type="Text" name="LIEFDAT_3" value="01.01.00" size="8" maxlength="8">

    <input type="submit" name="Absenden">
    </form>
    </body></html>

    Ich hoffe ich habe alle Fehler gefunden ;-) und du kannst was mit meiner Funktion anfangen!

    liebe Grüsse
    Bernhard

    1. Zunächst ersmal vielen Dank, ich werde mich heute mal hinsetzen es ausprobieren.
      EN soll nur ein Zähler sein, der alle Elemente im Formular durchzählt. Bei EN ging es um die richtige Syntax, da ich dachte das die falsch sein könnte (EN in... sowie ("document.LIEF." + EN + "."...
      Bei function A() ist es ein (Ab- )Schreibfehler beim Zusammenstellen dieser Nachricht, ich wollte mehrere Alternativen Zeigen zeigen.
      Nach dem vielen Probieren war es wohl ein wenig zu viel...
      Jens

      Hi! ;-)

      function(A)

      Meinst du vielleicht "function A()" ?

      {
      for(i=0;i<document.Testform.length;++i)

      document.forms[0].elements.length

      {
        document.write("
      Elementname: " + document.forms[0].elements[i].name);
        document.write(", Elementtyp: " + document.forms[0].elements[i].type);
        }
      »»  }

      Da gibt's nix auszusetzen ;-)

      function(B)

      Wie oben: function B() !!!

      {
        var z = 1;
      »»  for (EN in document.LIEF.elements) /* soll alle Elementennummern im Formular LIEF wiedergeben */

      Hab noch nie was von EN gelesen, was heisst/macht das ?
      Jedenfalls hab ich auch noch nie eine solche for-Schleife gesehen, aber kann ja sein dass es sowas auch gibt, alles ist möglich!

      »»  {

      if ("document.LIEF." + EN + ".value" == "") /* ist das mit dem EN so richtig? */

      wie gesagt, noch nie was von EN gehört!

      { alert ("Fehler!"); }
        else
        { break; }

      Hier hört if auf!!!

      »»  else

      }

      Ist also zuviel, gehört weg, ansonsten Syntax error :-(

      for(i=0;i<"document.LIEF." + EN + ".value.value.length";++i)

      Wieder dieses EN, value.value?? Tippfehler?
      Ausserdem fehlt die geschwungene Klammer!!!!

      if(document.Formular.Alter.value.charAt(i) < "0" document.Formular.Alter.value.charAt(i) > "9")

      • Zahlen werden ohne Anführungszeichen geschrieben
      • charAt(i) gibt das Zeichen an der Stelle i zurück, kann man also nur prüfen ob == "0" oder != "0", aber < "0" macht hier keinen Sinn!

      { alert ("Fehler!"); }
        }
        z++;
      »»  }
      }

      Probier mal meine Funktion aus:

      function C()
      {
         laenge=document.forms[0].elements.length;
         for (i=0; i < laenge; i++) {
          alert( "Element "+i+" \n- Name:" +
             document.LIEF.elements[i].name + "\n- Value: " +
             document.LIEF.elements[i].value + "\n- Typ:" +
             document.LIEF.elements[i].type);
         }
         return false;
      }

      </script>
      </head><body>

      Frage: es soll erreicht werden:

      1. dass alle MNG_?? - Felder auf eine Zahl ueberprueft werden

      Habs ausprobiert, ich hoffe du weisst was damit anzufangen ;-)

      »»

      1. das die Datumsfelder in der Zukunft liegen.

      Ich weiss nicht 100% aber ich glaub die Funktion heisst getDate()! Das gibt dir das aktuelle Datum, speichere es in eine Variable, zerlege es in Tag, Monat, Jahr, und schreib einfach was grösseres in die Textfelder rein!

      </p>
      <form action="Bestell_2.cfm" name="LIEF" onSubmit="return C();">
      <INPUT type="text" name="MNG_1" value="0" size="3" maxlength="5"> Stück am (Datum:) <input type="Text" name="LIEFDAT_1" value="01.01.00" size="8" maxlength="8">

      <INPUT type="text" name="MNG_2" value="0" size="3" maxlength="5"> Stück am (Datum:) <input type="Text" name="LIEFDAT_2" value="01.01.00" size="8" maxlength="8">

      <INPUT type="text" name="MNG_3" value="0" size="3" maxlength="5"> Stück am (Datum:) <input type="Text" name="LIEFDAT_3" value="01.01.00" size="8" maxlength="8">

      <input type="submit" name="Absenden">
      </form>
      </body></html>

      Ich hoffe ich habe alle Fehler gefunden ;-) und du kannst was mit meiner Funktion anfangen!

      liebe Grüsse
      Bernhard

      1. Ich habe im Moment zumindest eine Frage, die ich -auch durch Suche in
        selfhtml- nicht beantworten kann.

        Wie kan man den Inhalt einer Variablen, deren Bezeichnung in einer
        Variablen steht auslesen?

        Das Problem stellt sich in der function check() aber auch in der
        function check_Menge() wo sich genau die gleiche Frage stellt.
        Was muss ich dort schreiben?

        Und eine andere Frage (die ich aber vielleicht selber lösen kann),
        wie überprüfe ich, ob der Inhalt eines input-Feldes ein gültiges
        Datum ist?
        Muss ich für jeden Bestandteil des Datums eine Schleife über ein
        Array mit den richtigen Werten laufen lassen?

        Vielen Dank nochmal für die Hilfe... :-))
        Jens

        <html><head><title>Test</title>

        <script language="JavaScript">

        function check()
        {
        DAT_heute_new=new Date();
        DAT_heute_Tag=DAT_heute_new.getDate(); if (DAT_heute_Tag <= 9){DAT_heute_Monat="0"+DAT_heute_Monat}
        DAT_heute_Monat=DAT_heute_new.getMonth() + 1;if (DAT_heute_Monat <= 9){DAT_heute_Monat="0"+DAT_heute_Monat}
        DAT_heute_Jahr=DAT_heute_new.getYear();
        DAT_heute=DAT_heute_Jahr+"-"+DAT_heute_Monat+"-"+DAT_heute_Tag
        laenge=document.forms[0].elements.length;
        for (i=0; i < laenge; i++) {
        name=document.LIEF.elements[i].name;
        value_Tag=document.LIEF.elements[i].value;
        E_Nummer=name.substring(name.length-1,name.length);
        E_Teil=name.substr(0,4);
        value_Datum="document.LIEF.DAT_"+E_Nummer+".value";
        if (E_Teil == "DAT_" )
          if(value_Tag == ""){
          alert ( "Bitte fuer den "+E_Nummer+".Termin \n ein Datum eingeben!");
          }
        else {

        /*
        hier fängt Überprüfung des Datums an, überprüft wird die richtige Schreibweise

        alert (" Testausgabe vom Substring 2,1 = " + value_Datum.substring(0,2));
        ???? hier soll der Wert der Variablen value_Datum verarbeitet werden, und nicht die Objektbezeichnung !!! ???

        if
          (! value_Datum.substring(2,1) == "."
          && ! value_Datum.substring(5,1) == "."
          && ! value_Datum.substring(0,2) ==  ??? hier soll 01-31 rein
          && ! value_Datum.substring(3,2) ==  ??? hier soll 01-12 rein
          && ! value_Datum.substring(6,4) ==  ??? hier soll 2000-2010 rein

        ){
          alert ("das ist kein Datum, \n bitte geben Sie ein Datum im Format tt.mm.jjjj an");
          }

        */
          DAT_1_Jahr = value_Tag.substr(6,4);
          DAT_1_Monat = value_Tag.substr(3,2);
          DAT_1_Tag = value_Tag.substr(0,2);
          DAT_1 = DAT_1_Jahr + "-" + DAT_1_Monat + "-"+ DAT_1_Tag;
          if (DAT_1 < DAT_heute){
           alert ("Der "+DAT_1_Tag+"."+DAT_1_Monat+"."+DAT_1_Jahr+" ("+E_Nummer+" Termin) ist kleiner als das heutige Datum! \nBitte nutzen Sie ein zukuenftiges Datum!");
           }

        }

        }  
        return false;  
        

        }

        function check_Menge()
        {
        laenge=document.forms[0].elements.length;
        for (i=0; i < laenge; i++)
        {
        name=document.LIEF.elements[i].name;
        value_Zahl=document.LIEF.elements[i].value;
        value_Zahl = parseInt(value_Zahl);
        E_Nummer=name.substring(name.length-1,name.length);
        E_Teil=name.substr(0,4);
        value_Datum="document.LIEF.DAT_"+E_Nummer+".value";
        if (E_Teil == "MNG_"){
          alert("Feldinhalt: " +value_Zahl + " \n Schleife: " + i);
          if(isNaN(value_Zahl) == true){
           alert ( "Bitte fuer den "+E_Nummer+".Termin \n --> "+value_Datum+" <-- \n eine gueltige Menge eingeben!");
           }
          }

        }  
        return false;  
        

        }

        </script>
        </head><body>
        <form action="Bestell_2.cfm" name="LIEF" onSubmit="return check();">
        <INPUT type="text" name="MNG_1" value="0" size="3" maxlength="5"> Stück am (Datum:) <input type="Text" name="DAT_1" value="01.01.2001" size="10" maxlength="10"><br>
        <INPUT type="text" name="MNG_2" value="0" size="3" maxlength="5"> Stück am (Datum:) <input type="Text" name="DAT_2" value="01.01.2001" size="10" maxlength="10"><br>
        <INPUT type="text" name="MNG_3" value="0" size="3" maxlength="5"> Stück am (Datum:) <input type="Text" name="DAT_3" value="01.01.2001" size="10" maxlength="10"><br>
        <input type="submit" name="Absenden">
        </form>
        </body></html>

        Zunächst ersmal vielen Dank, ich werde mich heute mal hinsetzen es ausprobieren.
        EN soll nur ein Zähler sein, der alle Elemente im Formular durchzählt. Bei EN ging es um die richtige Syntax, da ich dachte das die falsch sein könnte (EN in... sowie ("document.LIEF." + EN + "."...
        Bei function A() ist es ein (Ab- )Schreibfehler beim Zusammenstellen dieser Nachricht, ich wollte mehrere Alternativen Zeigen zeigen.
        Nach dem vielen Probieren war es wohl ein wenig zu viel...
        Jens

        Hi! ;-)

        function(A)

        Meinst du vielleicht "function A()" ?

        {
        for(i=0;i<document.Testform.length;++i)

        document.forms[0].elements.length

        {
          document.write("
        Elementname: " + document.forms[0].elements[i].name);
          document.write(", Elementtyp: " + document.forms[0].elements[i].type);
          }
        »»  }

        Da gibt's nix auszusetzen ;-)

        function(B)

        Wie oben: function B() !!!

        {
          var z = 1;
        »»  for (EN in document.LIEF.elements) /* soll alle Elementennummern im Formular LIEF wiedergeben */

        Hab noch nie was von EN gelesen, was heisst/macht das ?
        Jedenfalls hab ich auch noch nie eine solche for-Schleife gesehen, aber kann ja sein dass es sowas auch gibt, alles ist möglich!

        »»  {

        if ("document.LIEF." + EN + ".value" == "") /* ist das mit dem EN so richtig? */

        wie gesagt, noch nie was von EN gehört!

        { alert ("Fehler!"); }
          else
          { break; }

        Hier hört if auf!!!

        »»  else

        }

        Ist also zuviel, gehört weg, ansonsten Syntax error :-(

        for(i=0;i<"document.LIEF." + EN + ".value.value.length";++i)

        Wieder dieses EN, value.value?? Tippfehler?
        Ausserdem fehlt die geschwungene Klammer!!!!

        if(document.Formular.Alter.value.charAt(i) < "0" document.Formular.Alter.value.charAt(i) > "9")

        • Zahlen werden ohne Anführungszeichen geschrieben
        • charAt(i) gibt das Zeichen an der Stelle i zurück, kann man also nur prüfen ob == "0" oder != "0", aber < "0" macht hier keinen Sinn!

        { alert ("Fehler!"); }
          }
          z++;
        »»  }
        }

        Probier mal meine Funktion aus:

        function C()
        {
           laenge=document.forms[0].elements.length;
           for (i=0; i < laenge; i++) {
            alert( "Element "+i+" \n- Name:" +
               document.LIEF.elements[i].name + "\n- Value: " +
               document.LIEF.elements[i].value + "\n- Typ:" +
               document.LIEF.elements[i].type);
           }
           return false;
        }

        </script>
        </head><body>

        Frage: es soll erreicht werden:

        1. dass alle MNG_?? - Felder auf eine Zahl ueberprueft werden

        Habs ausprobiert, ich hoffe du weisst was damit anzufangen ;-)
        »»

        1. das die Datumsfelder in der Zukunft liegen.

        Ich weiss nicht 100% aber ich glaub die Funktion heisst getDate()! Das gibt dir das aktuelle Datum, speichere es in eine Variable, zerlege es in Tag, Monat, Jahr, und schreib einfach was grösseres in die Textfelder rein!

        </p>
        <form action="Bestell_2.cfm" name="LIEF" onSubmit="return C();">
        <INPUT type="text" name="MNG_1" value="0" size="3" maxlength="5"> Stück am (Datum:) <input type="Text" name="LIEFDAT_1" value="01.01.00" size="8" maxlength="8">

        <INPUT type="text" name="MNG_2" value="0" size="3" maxlength="5"> Stück am (Datum:) <input type="Text" name="LIEFDAT_2" value="01.01.00" size="8" maxlength="8">

        <INPUT type="text" name="MNG_3" value="0" size="3" maxlength="5"> Stück am (Datum:) <input type="Text" name="LIEFDAT_3" value="01.01.00" size="8" maxlength="8">

        <input type="submit" name="Absenden">
        </form>
        </body></html>

        Ich hoffe ich habe alle Fehler gefunden ;-) und du kannst was mit meiner Funktion anfangen!

        liebe Grüsse
        Bernhard

        1. Hallo Jens

          <script language="JavaScript">

          function check()
          {
          DAT_heute_new=new Date();
          DAT_heute_Tag=DAT_heute_new.getDate(); if (DAT_heute_Tag <= 9){DAT_heute_Monat="0"+DAT_heute_Monat}

          Wenn du später mit den Zahlen noch was anstellen willst (vergleichen, erhöhen ,...) dann würde ich die führende 0 weglassen!

          Dann tust du dir leichter beim Vergleichen:
          if (DAT_heute_Tag </==/>/!= FORM_Tag) ....

          DAT_heute_Monat=DAT_heute_new.getMonth() + 1;if (DAT_heute_Monat <= 9){DAT_heute_Monat="0"+DAT_heute_Monat}
          DAT_heute_Jahr=DAT_heute_new.getYear();
          DAT_heute=DAT_heute_Jahr+"-"+DAT_heute_Monat+"-"+DAT_heute_Tag
          laenge=document.forms[0].elements.length;
          for (i=0; i < laenge; i++) {

          »»  name=document.LIEF.elements[i].name;
          »»  value_Tag=document.LIEF.elements[i].value;
          »»  E_Nummer=name.substring(name.length-1,name.length);
          »»  E_Teil=name.substr(0,4);
          »»  value_Datum="document.LIEF.DAT_"+E_Nummer+".value";
          »»  if (E_Teil == "DAT_" )

          if(value_Tag == ""){
            alert ( "Bitte fuer den "+E_Nummer+".Termin \n ein Datum eingeben!");
            }

          »»  else {

          /*
          hier fängt Überprüfung des Datums an, überprüft wird die richtige Schreibweise

          alert (" Testausgabe vom Substring 2,1 = " + value_Datum.substring(0,2));
          ???? hier soll der Wert der Variablen value_Datum verarbeitet werden, und nicht die Objektbezeichnung !!! ???

          if
            (! value_Datum.substring(2,1) == "."
            && ! value_Datum.substring(5,1) == "."
            && ! value_Datum.substring(0,2) ==  ??? hier soll 01-31 rein

          und stattdessen:
               && DAT_heute_Tag > 0 && DAT_heute_Tag < 32

          && ! value_Datum.substring(3,2) ==  ??? hier soll 01-12 rein

          und stattdessen:
               && DAT_heute_Monat > 0 && DAT_heute_Monat < 13

          && ! value_Datum.substring(6,4) ==  ??? hier soll 2000-2010 rein

          und stattdessen:
               && DAT_heute_Jahr > 2000 && DAT_heute_Jahr < 2010

          ){ alert ("Gültiges Datum"); }
             else { alert ("das ist kein Datum, \n bitte geben Sie ein Datum im Format tt.mm.jjjj an"); }

          siehst du, so ersparst du dir die Herumscheisserei mit den Stringmethoden ;-)

          */
            DAT_1_Jahr = value_Tag.substr(6,4);
            DAT_1_Monat = value_Tag.substr(3,2);
            DAT_1_Tag = value_Tag.substr(0,2);
            DAT_1 = DAT_1_Jahr + "-" + DAT_1_Monat + "-"+ DAT_1_Tag;
            if (DAT_1 < DAT_heute){
             alert ("Der "+DAT_1_Tag+"."+DAT_1_Monat+"."+DAT_1_Jahr+" ("+E_Nummer+" Termin) ist kleiner als das heutige Datum! \nBitte nutzen Sie ein zukuenftiges Datum!");
             }

          }

          »»  }
          »»  return false;

          }

          function check_Menge()
          {
          laenge=document.forms[0].elements.length;
          for (i=0; i < laenge; i++)

          »»  {
          »»  name=document.LIEF.elements[i].name;
          »»  value_Zahl=document.LIEF.elements[i].value;
          »»  value_Zahl = parseInt(value_Zahl);
          »»  E_Nummer=name.substring(name.length-1,name.length);
          »»  E_Teil=name.substr(0,4);
          »»  value_Datum="document.LIEF.DAT_"+E_Nummer+".value";
          »»  if (E_Teil == "MNG_"){

          alert("Feldinhalt: " +value_Zahl + " \n Schleife: " + i);
            if(isNaN(value_Zahl) == true){

          das == true kannst du dir sparen, denn wenn die Funktion isNaN() true zurückliefert ist die if-Bedingung ohnehin wahr ;-)

          alert ( "Bitte fuer den "+E_Nummer+".Termin \n --> "+value_Datum+" <-- \n eine gueltige Menge eingeben!");
             }
            }

          »»  }
          »»  return false;

          }

          Jetzt glaube ich kapier ich worums geht :-)
          Warum machst du es nicht z.b. so:

          for (i=1;i<anzahl_der_MNG_Felder;i++) {
            value = eval('document.LIEF.MNG_'+i+'.value');
            if (isNaN(value)){
               alert (i+".Termin("+datum+"): ungültige Menge");
            }
          }

          Mit dem eval-statement bin ich mir nicht ganz sicher, aber schau bitte selbst mal nach, wie es korrekt heist, obwohl ich glaube dass es so stimmt ;-)

          Der Ablauf sollte klar sein: Du beginnst in einer Schleife mit 1(!!) zu zählen, da dein erstes Element ja MNG_1 heisst, mit eval bekommst du in jedem Schleifendurchgang den Wert des Eingabefeldes MNG_i. Dann prüfst du ob dieser eine Zahl ist (könntest das ja eventuell auch noch in ein Intervall packen, z.b. zw. 1 und 99 damit niemand -1 eingeben kann) und kannst dann über den "Index" bequem auf die Felder-Inhalte zugreifen. Solte eigentlich so klappen, oder es ist irgendwo ein Denkfehler drinnen, aber das wollen wir ja nicht hoffen ;-)

          </script>
          </head><body>
          <form action="Bestell_2.cfm" name="LIEF" onSubmit="return check();">
          <INPUT type="text" name="MNG_1" value="0" size="3" maxlength="5"> Stück am (Datum:) <input type="Text" name="DAT_1" value="01.01.2001" size="10" maxlength="10">

          <INPUT type="text" name="MNG_2" value="0" size="3" maxlength="5"> Stück am (Datum:) <input type="Text" name="DAT_2" value="01.01.2001" size="10" maxlength="10">

          <INPUT type="text" name="MNG_3" value="0" size="3" maxlength="5"> Stück am (Datum:) <input type="Text" name="DAT_3" value="01.01.2001" size="10" maxlength="10">

          <input type="submit" name="Absenden">
          </form>
          </body></html>

          Ich hoffe mich verständlich genug ausgedrückt zu haben und natürlich auch dass du mit diesem Denkanstoss das Problem beseitigen kannst ;-)

          liebe Grüsse
          Bernhard