Gary: Inputinhalt in Variable stecken

Beitrag lesen

Hallo Martin

Vielleicht solltest du uns erstmal erklären, was du eigentlich erreichen willst. Das kann ich nämlich aus deinem Startposting beim besten Willen nicht entnehmen.

Erstes Radiobutton - Ausführen klicken - ergibt diese Eingabemaske.

Dort will ich, wenn der "Speichern!"-Knopf gedrückt wird, überprüfen ob das Datum in dem Format TT.MM.YYYY vorliegt. Dazu möchte ich den String bei Geb.Datum Zeichenweise auflösen:
----------------------------------------------------------
var Geburt; <-- Da soll der Inputwert von Geb.Datum rein
var Stelle1 = Geburt.substr(0, 1);
var Stelle2 = Geburt.substr(1, 1);
var Stelle3 = Geburt.substr(2, 1);
var Stelle4 = Geburt.substr(3, 1);
var Stelle5 = Geburt.substr(4, 1);
var Stelle6 = Geburt.substr(5, 1);
var Stelle7 = Geburt.substr(6, 1);
var Stelle8 = Geburt.substr(7, 1);
var Stelle9 = Geburt.substr(8, 1);
var Stelle10 = Geburt.substr(9, 1);
----------------------------------------------------------

Datum:  0   3   .   0   9   .   2   0   1   0
        |   |   |   |   |   |   |   |   |   |
Stelle: 1,  2,  3,  4,  5,  6,  7,  8,  9,  10

Dann soll per if-Anweisung Zeichen für Zeichen verglichen werden:
----------------------------------------------------------
if (Stelle1 ==< 3 and Stelle2 ==< 9 and Stelle3 == "." and Stelle4 ==< 1 and Stelle5 ==< 2 and Stelle6 == "." and Stelle7 ==< 3 and Stelle8 ==< 9 and Stelle9 ==< 9 and Stelle10 ==< 9) {}
----------------------------------------------------------

Das erste Zeichen (Stelle1) kann den Wert 3 oder kleiner annehmen...
usw...
Das dritte Zeichen (Stelle3) kann nur ein "." sein...

Wenn also am ende des großen IF-Blocks alle Zeichen in den gültigen Parametern liegen, dann erst darf das Formular übertragen werden.

Für Tag wäre nach dem Modell oben Werte zwischen 00 und 39 möglich.
Für Monat wäre nach dem Modell oben Werte zwischen 00 und 12 möglich.
Für Jahr wäre nach dem Modell oben Werte zwischen 0000 und 3999 möglich.

Nicht perfekt, aber akzeptabel. Das Selfbeispiel hier geht wahrscheinlich nicht, weil es führende Nullen entfernt. Ich brauch aber in der DB den Wert z. B. 01.08.2010. Also mit Null!

Ich will ja nicht alles in der Maske kontrollieren. Nur das Datum, um Programmabbrüche aufgrund von falschen Daumsangaben zu vermeiden. Und ein paar ausgewählte Felder auch "Leere" also "". Aber die Datumsgeschichte ist wohl die härteste Nuss zum Knacken...

Gruß Gary