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

Beitrag lesen

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