# Monat/Tag/Jahr Wert einer Datumseingabe auf Richtigkeit prüfen



## Al3x0r (15. Oktober 2005)

*Neues Problem bitte lesen. Irgendwo fehler im Script*

Guten Tag,
Ich habe den Sticky gelesen und ich weiß, dass man hier nicht seine Wunschliste schreibt damit andere Leute die Arbeit haben, jedoch habe ich ein ernsthaftes Problem, welches ich nicht lösen kann.

Es geht um eine Feld in einem Formular bei dem im Format TT.MM.JJ das Datum eingegeben werden soll.

ich möchte jetzt den Teil TT von TT.MM.JJ abspalten und prüfen.

0< TT >/=31

dann mit MM

0< MM >/=12

und mit JJ

JJ >/= 05

Ich habe schon ne ganze Zeit im Inet gesucht aber ich habe keine ahnung wie das zu realisieren ist.... Mir würde es schon reichen wenn ich nen Link zu einem Tutorial oder so hätte, Sache wie "Lerne Java, dann wird das was:" bringen mich nicht weiter. Da ich schon dabei bin und eben an dieser Sache scheiter. 
Vllt ist ja jemand so lieb und hat so einen code mit ein paar bemerkungen ....

Vielen Dank
Alex


----------



## con-f-use (15. Oktober 2005)

Wo ist das Problem? Den value vom Eingabeld spaltest du per split('.') in die drei Zahlen auf. Du erhälst ein Array mit den drei Zahlen - die erste enspricht dem Tag, die zweite dem Monat, die dritte dem Jahr. Die prüfst du dann in einer If-Abfrage einzelen auf die Bdingungen.

          Beispiel: 
	
	
	



```
<input type="text" id="datum" />
  <input type="button" value="Prüfen!" onclick="pruefe()" />
  
  <script type="text/javascript"><!--
  function pruefe() {
  	var arr = document.getElementById('datum').value.split('.');
  	if (arr[0] <= 31 && arr[1] <= 12 && arr[2] >= 5) {
  		alert('Alles klar!');
  	} else {
  		alert('Datum ungültig!');
  	}
  }
  //-->
 </script>
```
Ich hab das Script nicht getestet und es deckt auch sicher nicht alles ab, aber das Prinzip sollte klar werden.


----------



## Al3x0r (15. Oktober 2005)

Danke für deine Antwort aber mhhh ist mir nen bissl peinlich aber ich verstehe die Erklärung da nicht recht. Wärest du so freundlich das vllt im Ansatz auf mein Problem zu beziehen? Ich werde mich mal weiter schlau lesen.... Das sieht aber sehr viel versprechend aus.... 
Ach ist das schön, dass hier die Möglichkeiten besteht in so vielen Bereichen geholfen zu werden ^^ 
thx

edit:// habe ich grade echt das beispiel von dir übersehen... mhhh so ein mist naja nu weiss ich hoffe ich bescheid



```
if (arr[0] <= 31 && arr[1] <=12 && arr[2] >= 5)
```

macht es einen unterschied ob ich <=12 oder <= 12 schreibe? also mit oder ohne leerzeichen ?


----------



## con-f-use (15. Oktober 2005)

Sei bitte etwas spezifischer! Womit genau hast du Probleme?

  Ich hab keine Ahnung wie dein Wissenstand ist und möchte nicht erklären, was eine Funktion ist und wie man sie über einen Button aufruft, wenn du verstehst...


----------



## Al3x0r (15. Oktober 2005)

Dein Beispiel hat mir sehr geholfen mein problem lag darin mit welchem Befehl ich das Datum splitte.


----------



## con-f-use (15. Oktober 2005)

Na dann gern geschehen.

  Das Leerzeichen macht übrigens keinen Unterschied.

 Bitte denk daran, das Thema als erledigt zu markieren!

 Danke!


----------



## Al3x0r (15. Oktober 2005)

Leider ist es noch nciht erledigt, da das script nicht funktioniert ... kp warum.
Ich werde mal schauen, ob ich da was machen kann. Wenn nicht würde ich hier nochmal Hilfe erfragen...



mfG alex

edit:// kann sich vllt einer derer, die Ahnung haben das Script da oben mal anschauen. ich finde keinen fehler ( wie auch als Leie ). Danke Alex


----------



## con-f-use (15. Oktober 2005)

Es ist auch kein Fehler drin: Das Script funktioniert einwandfrei bei mir.


----------



## Al3x0r (15. Oktober 2005)

habe es nun anders gelöst..... Thema erledigt, Danke!


----------



## Al3x0r (17. Oktober 2005)

Habe das Thema nochmal enterledigt, da ich noch Probleme mit einem Script habe was mit dem hier zusammenhängt aber wofür ich keinen neuen Thread aufmachen will.

Nach vielen lesen und probieren bin ich auf diesen Code gekommen


```
<script type="text/javascript">
function pruefe() {
  if (document.form1.zahler_firma.value == "") {
    alert("Firma des Frachtzahlers fehlt.");
    document.form1.zahler_firma.focus();
    return false;
  }
  if (document.form1.zahler_strasse.value == "") {
    alert("Straße des Frachtzahlers fehlt.");
    document.form1.zahler_strasse.focus();
    return false;
  }
  if (document.form1.zahler_plz.value == "") {
    alert("Postleitzahl des Frachtzahlers fehlt.");
    document.form1.zahler_plz.focus();
    return false;
  }
  if (document.form1.zahler_ort.value == "") {
    alert("Ort des Frachtzahlers fehlt.");
    document.form1.zahler_ort.focus();
    return false;
  }
  if (document.form1.ladetermin.value == "") {
    alert("Ladetermin fehlt.");
    document.form1.ladetermin.focus();
    return false;
  }
  {  
  var rtu = true;

  with (document.form1.elements['ladetermin'])
  {
  var spl = value.split('.');

  if (spl.length != 3)
  rtu = false;
  else if ((spl[0].length != 2) || (spl[0].match(/\D/) != null) || (spl[0] < 1) || (spl[0] > 31))
  rtu = false;
  else if ((spl[1].length != 2) || (spl[1].match(/\D/) != null) || (spl[1] < 1) || (spl[1] > 12))
  rtu = false;
  else if ((spl[2].length != 2) || (spl[2].match(/\D/) != null) || (spl[2] < 05) || (spl[2] > 36))
  rtu = false;

  if (rtu === false)
  {
  alert('Falscher Ladetermin (Bsp.: 12.05.05)');
  focus();
  }
  

  return rtu;
  }
  
  if (document.form1.auftragsnr.value == "") {
    alert("Auftragsnummer fehlt.");
    document.form1.auftragsnr.focus();
    return false;
  }
  if (document.form1.entladetermin.value == "") {
    alert("Entladetermin fehlt.");
    document.form1.entladetermin.focus();
    return false;
  }
    {  
  var rtu = true;

  with (document.form1.elements['entladetermin'])
  {
  var spl = value.split('.');

  if (spl.length != 3)
  rtu = false;
  else if ((spl[0].length != 2) || (spl[0].match(/\D/) != null) || (spl[0] < 1) || (spl[0] > 31))
  rtu = false;
  else if ((spl[1].length != ?A	?
f2) || (spl[1].match(/\D/) != null) || (spl[1] < 1) || (spl[1] > 12))
  rtu = false;
  else if ((spl[2].length != 2) || (spl[2].match(/\D/) != null) || (spl[2] < 05) || (spl[2] > 36))
  rtu = false;

  if (rtu === false)
  {
  alert('Falscher Entladetermin.');
  focus();
  }
  
  

  return rtu;
  }
  if (document.form1.lade_firma.value == "") {
    alert("Firma des Verladeortes fehlt.");
    document.form1.lade_firma.focus();
    return false;
  }
  if (document.form1.lade_strasse.value == "") {
    alert("Straße des Verladeortes fehlt.");
    document.form1.lade_strasse.focus();
    return false;
  }
  if (document.form1.lade_plz.value == "") {
    alert("Postleitzahl des Verladeortes fehlt.");
    document.form1.lade_plz.focus();
    return false;
  }
  if (document.form1.lade_ort.value == "") {
    alert("Ort des Verladeortes fehlt.");
    document.form1.lade_ort.focus();
    return false;
  }
  if (document.form1.entlade_firma.value == "") {
    alert("Firma des Entladeortes fehlt.");
    document.form1.entlade_firma.focus();
    return false;
  }
  if (document.form1.entlade_strasse.value == "") {
    alert("Straße des Entladeortes fehlt.");
    document.form1.entlade_strasse.focus();
    return false;
  }
  if (document.form1.entlade_plz.value == "") {
    alert("Postleitzahl des Entladeortes fehlt.");
    document.form1.entlade_plz.focus();
    return false;  
  }
  if (document.form1.entlade_ort.value == "") {
    alert("Ort des Entladeortes fehlt.");
    document.form1.entlade_ort.focus();
    return false;
  }
  if (document.form1.warenart.value == "") {
    alert("Warenart fehlt.");
    document.form1.warenart.focus();
    return false;
  }
  if (document.form1.gewicht.value == "") {
    alert("Gewicht fehlt.");
    document.form1.gewicht.focus();
    return false;
  }
  }
</script>
```

Doch wo ist der Fehler ? denn manchmal  das script und manchmal nicht.
Ach ja mhhh kannm an das was ich da gemacht habe auch kürzer schreiben ?

mfg Alex


----------

