Benutzereingaben in Formularen validieren

Zum Validieren der Benutzereingaben haben Sie folgende Möglichkeiten:

  • Client-seitige Validierung über reguläre Ausdrücke

    An den Formularelementen werden reguläre Ausdrücke und geeignete Fehlermeldung erfasst. Die Benutzereingaben werden vor dem Absenden des Formulars im Browser geprüft. Fehlerhafte Eingaben werden markiert, es wird eine Fehlermeldung ausgegeben und das Formular wird nicht abgeschickt.

  • Server-seitige, kontext-sensitive Validierung via AJAX

    An den Formularelementen werden XPath-Ausdrücke und geeignete Fehlermeldung hinterlegt. Vor dem eigentlichen Absenden des Formulars wird ein Ajax-Call mit den Formularfeldern und Benutzereingaben an den Webserver gesendet. Dort werden die Daten anhand der XPath-Ausdrücke validiert. Im Browser werden die fehlerhaften Felder per Ajax markiert und eine Liste der Fehlermeldungen angezeigt.

Client-seitige Validierung von Benutzereingaben über Pattern

Um Benutzereingaben in Formularen noch vor dem Absenden im Browser prüfen zu lassen, können Sie für die Eingabefelder reguläre Ausdrücke definieren.

Bei einer fehlerhaften Eingabe werden die entsprechenden Felder markiert, es wird eine Fehlermeldung ausgegeben und das Formular wird nicht abgeschickt.

Voraussetzungen

Im Formular ist mind. ein Button-Element mit dem Event submit vorhanden. An diesem Element ist das Attribut validate markiert.

So gehen Sie vor

  1. Fügen Sie im Designer ein textField-Element ein.

  2. Markieren Sie das Element und zeigen Sie das Register Eigenschaften an.

  3. Formulieren Sie die Einschränkungen der Benutzereingabe als regulären Ausdruck. Geben Sie den Ausdruck als Wert des Attributs pattern ein.

    Reguläre Ausdrücke müssen in Schrägstriche (/) eingeschlossen werden.

    Beispiel: /(\d\d)\.(\d\d)\.(\d\d\d\d)/

    Das Attribut pattern kann nicht zusammen mit dem Attribut mandatory verwendet werden! Wenn die Benutzereingabe in einem Feld mit pattern beschränkt wird und das Feld gleichzeitig ein Pflichtfeld sein soll, dann müssen Sie dies mit einem geeigneten regulären Ausdruck formulieren.

  4. Geben Sie die Fehlermeldung, die angezeigt werden soll, wenn die Benutzereingabe nicht dem definierten Pattern entspricht, als Wert des Attributs errorText ein.

  5. Wenn das Formular nicht im BPC Portal angezeigt werden soll, dann müssen Sie das Element <textArea name=‘errorViewer‘> für die Anzeige der Fehlermeldung hinzufügen. Das Element muss hierarchisch über dem Eingabefeld stehen, an dem pattern definiert ist. Es ist standardmäßig ausgeblendet.

  6. Publizieren Sie das Modul.

Server-seitige Validierung von Benutzereingaben per AJAX

Die Benutzereingaben in Formulare können kontextsensitiv mithilfe selbstformulierter Validierungsregeln überprüft werden. Folgende Prüfungen sind z.B. möglich:

  • Obligatorische Felder gefüllt?

  • Datentypen der Eingabewerte korrekt?

  • Datumsformate korrekt?

Die Benutzereingaben werden server-seitig validiert, dazu werden die Benutzereingaben im Hintergrund an die INUBIT Process Engine gesendet. Ausgelöst wird die Validierung durch ein Submit-Event, die Benutzereingaben werden also validiert, sobald ein Submit- bzw. Senden-Button im Formular angeklickt wird.

Die Ergebnisse der Validierung werden im Formular als Liste in einem Tooltipp angezeigt. Ein Klick auf ein einzelnes Validierungsergebnis markiert das Eingabefeld, in welches der ungültige Wert eingegeben wurde:

module guide 869 1

Technischer Hintergrund

Die Validierungsregeln werden im Standard von WS-Policy MessagePredicates erfasst, d.h. in Form von XPath-Ausdrücken. Die gesamte XPath 3.1-Syntax wird unterstützt.

Alle Validierungsregeln beziehen sich direkt auf die Formularstruktur und sind wiederverwendbar. Sie können beliebig komplexe Abhängigkeiten zwischen Formularfeldern abbilden.

Beispiel

In einem Formular werden die Rentenhöhe, der Wohnort und das Geschlecht von Rentnern abgefragt. Die Validierungsregel lautet umgangssprachlich: Die monatliche Rente einer Berlinerin darf nicht über 1000 Euro liegen.

Als XPath-Ausdruck sieht die Validierungsregel so aus:

module guide 869 2

Bei der Server-seitigen AJAX-Validierung benötigt der XPath aus Gründen der Einheitlichkeit immer das Group- Element. Der Grund hierfür ist, dass das Eingabefeld möglicherweise durch die IS-JavaScript-Funktion copyGroupIS(..) erzeugt wurde und somit das Group-Element als übergreifendes Element vorliegt.

Voraussetzungen

  • Im Formular ist mind. ein Button-Element mit dem Event submit vorhanden.

  • Bei dem Button-Element ist das Attribut validate markiert.

  • Sie verfügen über XPath-Kenntnisse.

So gehen Sie vor

  1. Zeigen Sie das Formular im Formular-Designer an.

  2. Wählen Sie Bearbeiten > Server-seitige Validierung.

    Der Editor öffnet sich und zeigt ein XML-Dokument mit Beispielen für Validierungsregeln an.

  3. Passen Sie die Beispiele an Ihre Formularstrukturen an oder fügen Sie neue Elemente hinzu.

    Damit bei einem Klick auf ein Validierungsergebnis immer das dazugehörige Eingabefeld markiert wird, müssen die Validierungsregeln nach folgendem Muster erstellt werden: not(invalidesElement).

    Beispiel: Eine Regel lautet umgangssprachlich Das Eingabefeld InputElement darf nicht leer sein, als Pseudo-Code nicht(Eingabefeld InputElement leer). Der korrekte XPath-Ausdruck lautet "not(/Form/Response/Panel/Group/ InputElement[string-length(.)=0])"

    Standardmäßig können Validierungsergebnisse auf Deutsch und Englisch angezeigt werden. Um weitere Sprachen zu ergänzen, fügen Sie pro Sprache folgendes ein:

    • Ein wsp:PolicyAttachment-Attribut, z.B. inubit:heading.es='{errorCount} Error durante la validación del formulario'.

      Diese Angabe wird als Titel der Ergebnisliste verwendet.

    • Ein HTML-List-Element mit einer Erklärung, z.B. inubit:responseHtml.es='<li>Elemento1 es `un campo obligatorio.</li>’

  4. Um Ihre Änderungen zu speichern, klicken Sie auf OK.

Ihre Änderungen werden gespeichert und der Editor schließt sich.