Frage

Ich bin auf ein Problem gestoßen, um ein Formular zu ändern, das ich selbst nicht gebaut habe.

Das Formular verfügt über ein ASP: Eingabefeld für einen Datumswert, der von einem erforderlichen Fieldval und einem Rangeval überprüft wird. Der Rangeval hat Type auf "Datum" und Minalwert 2000-01-01: Max Value 3000-01-01

Nun zu dem Problem versuche ich hinzuzufügen, damit der Benutzer das Datum in Form von "20000101" mit anderen Worten ohne die "-" eingeben kann.

Ich habe versucht, einen weiteren Rangeval mit Ganzzahltyp und den max, maximalen Werten hinzuzufügen und beide in die gleiche Validierungsgruppe zu setzen, aber das hat nicht funktioniert.

Wie erlaube ich dem Benutzer, beide (beide) Formate im Datumseingangsfeld zu verwenden?

Danke im Voraus!

War es hilfreich?

Lösung

Sie können einen regulären Ausdrucksvalidator anstelle des Bereichs Validator verwenden. Ich bin ein bisschen verrostet mit Regex, aber ich bin sicher, dass Sie hier etwas finden können.

http://www.regular-expressions.info/

Hier ist ein Link zur Datenseite:

http://www.regular-expressions.info/dates.html

Probieren Sie das aus, ich denke, es wird funktionieren. Wenn nicht, lassen Sie es mich wissen und ich werde daran arbeiten, es zu korrigieren:

((19|20)\d\d[- /.](0[1-9]|1[012])[-/.](0[1-9]|[12][0-9]|3[01])|((19|20)\d\d(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])))

Ein weiterer Beitrag hat einen Punkt angesprochen, den dieser Regex einige ungültige Daten wie den 31. Februar nicht bestätigt. In diesem Fall würde ich nur eine Validierungsklasse erstellen, die vom Regex -Validator erbt und die evaluateIsvalid Datum. Dies ermöglicht den größten Teil der Validierung am Client -Ende, wobei die Sicherung auf der Serverebene liegt und ohnehin eine sekundäre Validierung durchführen sollte.

Andere Tipps

Wenn Sie mehrere Validierungssteuerungen verwenden, um eine einzelne Steuerung zu validieren, müssen alle Validierungssteuerungen bestehen.

Sie können einen regulären Ausdruck verwenden (wie Kevin betont), aber die von Ihnen erforderliche Validierung (Überprüfen Sie, ob der Wert gültig ist DateTime Objekt und innerhalb des angegebenen Bereichs) ist schwierig, sauber zu tun.

Ich würde vorschlagen, Ihre eigenen zu schreiben CustomValidator Kontrolle und verwenden Sie das dann, um Ihre Werte zu validieren, wie Sie möchten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top