Webgate Anywhere 4.1 - WebTML Tag-Referenz
input validation

<tml:input validation ="TMLScript expression">

Verwendung:

Definiert einen Validierungsausdruck, der bei Speicherung des Formulars ausgewertet wird.

Beschreibung:

Wird über dieses Attribut ein Validierungsausdruck als TMLScript-Ausdruck eingegeben, so wird das Eingabefeld vor seiner Speicherung mithilfe dieses Ausdrucks geprüft. Dies geschieht bei den TMLScript-Methoden des tmlform-Objektes "storeInContent(), "storeInProfile()", "storeInPortlet()" oder "storeInDocument()", aber auch bei Verwendung der WebTML-Defaultaktion "$store".

Die Validierung kann in TMLScript auch manuell ausgelöst werden über die Methode des tmlform-Objektes "validate()", welche true oder false, je nach Erfolg der Validierung zurückgibt.

Schlägt der Ausdruck fehl, d.h. liefert er false zurück, so wird die Speicherung abgebrochen und eine Fehlermeldung - definierbar über das Attribut message- kann ausgegeben werden. Zur Ermittelung der angefallenen Fehlermeldungen stehen Methoden am tmlform-Objekt in TMLScript oder der Tag formmessages bereit.

Im Validierungsausdruck steht der übliche TMLScript-Sprachumfang zur Verfügung, wie auch in TMLScript-Konditionen. Zusätzlich kann auf den Wert des aktuellen Inputfeldes mithilfe folgender Ausdrücke verwiesen werden:

$E_VALUE - Liefert den "entered value", also den eingegebenen Wert, wie er vom Benutzer angegeben wurde, als Text bzw. Liste von Texten (bei Mehrfachwert-Eingabe). Hier wurden noch keinerlei Typkonvertierungen (z.B. zu einer Nummer) oder Formatierungen vorgenommen.

$P_VALUE - Liefert den "processed value", also den Wert, bzw. eine Liste von Werten, nachdem er zu seinem Zieltypen (z.B. einer Zahl oder einem Datum) konvertiert wurde. Konnte die Konvertierung nicht durchgeführt werden liefert dieser Wert null.

Mehrere Validierungen können für ein Input-Feld definiert werden, wenn per Attribut validationdividerein Trennzeichen für mehrere Validierungsausdrücke definiert wird.

Für globale Validierungen, die sich nicht auf ein einzelnes Feld beziehen kann der Tag validate verwendet werden.

Wert(e):

Ein boolscher TMLScript-Ausdruck

Beispiele:

Folgende Validierungsformel verhindert, dass ein Feld leer abgespeichert wird:

<tml:input name="firstname" trim="true" validation="($E_VALUE != '')"  message="Please enter your firstname."/>

In folgendem input-Tag werden mehrere Validierungsformeln per Attribut "validationdivider" festgelegt. Sowohl im Attribut "validation" als auch im Attribut "message" wird der dort definierte Trenner verwendet. Das Beispiel überprüft ein E-Mail-Feld, ob es einerseits gefüllt ist, andererseits ein @-Zeichen enthält.

<tml:input name="email" trim="true" validationdivider="~" validation="($E_VALUE != '') ~ ($E_VALUE.indexOf('@')"
                   message="Please enter your email-address. ~ The entered email-address is invalid. There is no '@'." />  


<< type="textarea" message >>