Das Szenario ist, dass mittels webinput() ein Datum eingegeben werden kann und dieses Datum nicht in der Vergangenheit liegen soll.
Dazu reagiere ich auf den Change (webinput(), prüfe das Datum auf "vor heute", ändere das Datum bei Bedarf auf heute und schreibe das so geänderte Datum mit webdisplay() zurück ins Eingabefeld.
Im Pseudo-Code sieht das in etwa so aus:
Wenn also jemand heute (19.3.2026) das Datum 18.3.2026 wählt, wird es sofort wieder auf 19.3.2026 geändert, intern sowie um UI.
Das funktioniert - beim ersten Mal.
Ein zweites Mal geht es nicht mehr. Bei erneuter Eingabe des 18.3.2026 wird der change() nicht ausgelöst. Da dann die erste Zeile nicht triggert, funktioniert die Mimik nicht mehr. Im obigen Code bleibt das Datum daher auf dem 19.3.2026, im UI steht aber der 18.3.2026.
Man muss ein anderes Datum als den 18.3.2026 auswählen, damit change() triggert. Das heißt, bei webdisplay() wird die intern genutzte Variable für das Datum offensichtlich nicht geändert, nur die Darstellung.
Entweder ist das ein Bug in webinuput(), oder man muss neben webdisplay() noch etwas anderes setzen, damit die interne Variable verändert wird. Nur wüsste ich nicht, wie...
Dazu reagiere ich auf den Change (webinput(), prüfe das Datum auf "vor heute", ändere das Datum bei Bedarf auf heute und schreibe das so geänderte Datum mit webdisplay() zurück ins Eingabefeld.
Im Pseudo-Code sieht das in etwa so aus:
Code:
if change(webinput(UIID)) then datum = webinput(datum); endif; if "datum liegt vor heute" then datum = heute; webdisplay(UIID, datum, ...); endif;
Das funktioniert - beim ersten Mal.
Ein zweites Mal geht es nicht mehr. Bei erneuter Eingabe des 18.3.2026 wird der change() nicht ausgelöst. Da dann die erste Zeile nicht triggert, funktioniert die Mimik nicht mehr. Im obigen Code bleibt das Datum daher auf dem 19.3.2026, im UI steht aber der 18.3.2026.
Man muss ein anderes Datum als den 18.3.2026 auswählen, damit change() triggert. Das heißt, bei webdisplay() wird die intern genutzte Variable für das Datum offensichtlich nicht geändert, nur die Darstellung.
Entweder ist das ein Bug in webinuput(), oder man muss neben webdisplay() noch etwas anderes setzen, damit die interne Variable verändert wird. Nur wüsste ich nicht, wie...



Kommentar