Bereichs Validierung

Die Möglichkeiten und Tücken von Formularen
Antworten
cKrawietz
Beiträge: 5
Registriert: 10.11.2017, 17:13

Bereichs Validierung

Beitrag von cKrawietz » 14.11.2017, 15:03

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.

BAlheit
Beiträge: 842
Registriert: 16.08.2013, 12:22

Bereichs Validierung

Beitrag von BAlheit » 14.11.2017, 18:21

Bei der Prüfung würde ich eine Oder-Verknüpfung und keine Und-Verknüpfung verwenden. Also || statt &&.

cKrawietz
Beiträge: 5
Registriert: 10.11.2017, 17:13

Bereichs Validierung

Beitrag von cKrawietz » 17.11.2017, 10:39

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?

BAlheit
Beiträge: 842
Registriert: 16.08.2013, 12:22

Bereichs Validierung

Beitrag von BAlheit » 17.11.2017, 12:03

Warum wird bei der Validierung das Feld "Geburtsjahr" immer geleert?

cKrawietz
Beiträge: 5
Registriert: 10.11.2017, 17:13

Bereichs Validierung

Beitrag von cKrawietz » 17.11.2017, 12:23

Es wird nicht geleert sondern auf den zuletzt funktionierenden Wert gesetzt, aber ich kein den Wert dann nicht mehr ändern im Geburtsjahr-Feld.

BAlheit
Beiträge: 842
Registriert: 16.08.2013, 12:22

Bereichs Validierung

Beitrag von BAlheit » 17.11.2017, 12:52

Durch folgenden Befehl wird es immer geleert:

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

cKrawietz
Beiträge: 5
Registriert: 10.11.2017, 17:13

Bereichs Validierung

Beitrag von cKrawietz » 17.11.2017, 13:01

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.");
}

Antworten