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 Schreibweisealert (" 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