Pitt: Geburtsdatum

hi

also habe fogendes problem.

ich eine funktion für mein formular erstellen die ausrechnet, ob jemand 18 ist.

mein quelltext:

<script language="javascript">
function Datum()
{
 var d = new Date();
 var tage = d.getDate();
 tage = ((tage < 10) ? "0":"") + tage;
 var monate = d.getMonth() +1;
 monate = ((monate < 10) ? "0":"") + monate;
 var jahre = d.getYear();

document.anmeldeformular.tage.value=(tage)
 document.anmeldeformular.monate.value=(monate)
 document.anmeldeformular.jahre.value=(jahre)
}
function prufung(formularinhalt)
{
 if (!test_Alter(formularinhalt)) return(false);
 else
 return(true);
}
function test_Alter(formular)
{
 if (formular.jahre.value - formular.jahre1.value < "18")
 {alert("Sie müssen mindestens 18 Jahre alt sein.");
 formular.jahre1.select();
 formular.jahre1.focus();
 return(false);
 } else

var monate = 1
 for (i=18;i==formular.jahre.value - formular.jahre1.value;++i)
 if (formular.monate.value < formular.monate1.value)
 monate = -1
 if (monate == -1)
 {alert("sieü 18 sein");
 return(false);
 } else

var tage = 1
 for(i=?;formular.monate.value == formular.monate1.value;i==formular.monate.value == formular.monate1.value;++i)
 if (formular.tage.value < formular.tage1.value)
 tage = -1
 if (tage == -1)
 {alert("Sie m+ssen 18 sein");
 return(false);
 } true)else
 return(;
}

</script>
</head>

<body onload="Datum()">
<form action="mailto:afaf@afj.de" name="anmeldeformular" onSubmit="return prufung(anmeldeformular)">
<input type="hidden" name="tage" size="5">
<input type="hidden" name="monate" size="5">
<input type="hidden" name="jahre" size="5"><p>
<input type="text" name="tage1" size="5">
<input type="text" name="monate1" size="5">
<input type="text" name="jahre1" size="5"><p>
<input type="submit" name="submit" value="Abschicken">
<input type="reset" name="reset" value="Löschen"><p>
</form>

erklärung:

also die funktion rechnet zuerst das geburtsdatum minus das jetztige jahr.
wenn 17 rauskommt dann kommt natürlich das alert fenster.
wenn 19 rauskommt dann passt alles.
wenn 18 rauskommt dann kann er ja schon 18 sein aber muss nicht.
also rechnet die funktion die monate, wenn die jetzigen monate kleiner als die geburtsmonate, dann kommt wieder das alert fenster, weil er ja sein 18 geburtsmonat erst später hat. wenn die jetzigen monate gröser als die geburtsmonate dann passt alles.
wenn die monate jetzt aber gleich sind dann soll er auf die tage übergehen.

es geht glaub ich nur darum was ich bei der zweiten for-schleife bei i= eintragen muss.

und jetzt bei der letzt funktion bleib ich hängen. :-((
schaut euch mal den quelltext an und vielleicht könnt ihr das prob lösen.

  1. Deja vu!

    Bitte bleib in Deinem Thread [pref:t=42174&m=230720]!

    Alexander

    --
    Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"