Seite 1 von 1

Bereichs Validierung

Verfasst: 14.11.2017, 15:03
von cKrawietz
Hey Leute,
ich möchte ein Zahlenfeld validieren.
Das Feld beinhaltet das Geburtsjahr des Users. Es soll zwischen 1932 und 1977 liegen, also das Formular richtet sich an Benutzer im Alter von 40-85 Jahren. Die Validierung soll aber abhängig vom Tagesdatum sein. Das heißt, nächstes Jahr verschiebt sich der Validierungbereich um 1 Jahr. Meine Idee war es jetzt:
Ich habe ein Feld "Year", was das aktuelle Jahr anzeigt, ein Geburtsjahr Feld, was das Geburtsjahr anzeigt und ein Alter Feld, was das berechnete Alter anzeigt.
Wenn das Alter innerhalb 40-85 liegt soll er weiter rechnen, wenn er nicht in diesem Bereich liegt, soll eine Validierungsmeldung erscheinen.

Code: Alles auswählen

var Datum = new Date();
this.getField("Year").value  = Datum.getFullYear();
this.getField("Geburtsjahr").value = "";
this.getField("Alter").value = this.getField("Year").value - this.getField("Geburtsjahr").value;

if (this.getField("Alter").value < 40 && this.getField("Alter").value > 85) {
 event.rc = true;
} else {
 event.rc = false;
 app.alert("Eintrittsalter muss zwischen 40 und 85 Jahre liegen.");
}
Die Validierung findet auf dem Geburtsjahrfeld statt.
Er validiert mir das Feld aber nicht richtig. Hab ich da ein Gedanken Fehler?
Danke für eure Hilfe.

Bereichs Validierung

Verfasst: 14.11.2017, 18:21
von BAlheit
Bei der Prüfung würde ich eine Oder-Verknüpfung und keine Und-Verknüpfung verwenden. Also || statt &&.

Bereichs Validierung

Verfasst: 17.11.2017, 10:39
von cKrawietz
Wenn ich nun außerhalb des Bereichs liege, wird ja der app.Alert getriggert. Das Problem ist, dass ich danach keine Möglichkeit mehr habe eine korrekte Zahl einzugeben, er geht immer wieder in den False Bereich. Muss das Geburtsjahr Feld im False-Bereich noch gereseted werden? Wenn ja, wie mach ich das?

Bereichs Validierung

Verfasst: 17.11.2017, 12:03
von BAlheit
Warum wird bei der Validierung das Feld "Geburtsjahr" immer geleert?

Bereichs Validierung

Verfasst: 17.11.2017, 12:23
von cKrawietz
Es wird nicht geleert sondern auf den zuletzt funktionierenden Wert gesetzt, aber ich kein den Wert dann nicht mehr ändern im Geburtsjahr-Feld.

Bereichs Validierung

Verfasst: 17.11.2017, 12:52
von BAlheit
Durch folgenden Befehl wird es immer geleert:

this.getField("Geburtsjahr").value = "";

Bereichs Validierung

Verfasst: 17.11.2017, 13:01
von cKrawietz
aktueller code im Validierungsfeld des Geburtsjahr-Feldes

Code: Alles auswählen

var Datum = new Date();
var Year = Datum.getFullYear();
var Alter = Year - this.getField("Geburtsjahr").value;

if (Alter >= 40 || Alter <= 85) {
event.rc = true;
} else {
event.rc = false;
app.alert("Eintrittsalter muss zwischen 40 und 85 Jahre liegen.");
}