Wiki-Quellcode von Bedingungen


Zeige letzte Bearbeiter
1 Über die Bedingungen werden Validierungen und Sichtbarkeiten für die Formularelemente festgelegt. Einige Bedingungen sind nur für manche Formularelemente verfügbar, diese sind auch noch einmal in der Hilfe zu den [[einzelnen Elementen>>doc:Formcycle.Designer.Form.FormElements.WebHome]] beschrieben.
2
3 == Steuerbare Eigenschaften ==
4
5 {{figure image="designer_properties_constraints_de.png"}}
6 In den Bedingungen können Elemente etwa versteckt oder als Mussfelder geschaltet werden, wenn bestimmte Bedingungen erfüllt sind. Zudem kann über den Elementwähler ein Formularelement direkt mit der Maus ausgewählt werden.
7 {{/figure}}
8
9 {{table dataTypeAlpha="0" colWidth="-500"}}
10 |=Name|=Beschreibung
11 |Versteckt wenn|Wenn die Bedingung erfüllt ist, wird das Formularelement versteckt.
12 |Sichtbar wenn|Wenn die Bedingung erfüllt ist, wird das Formularelement angezeigt. Diese Option erscheint, wenn das Formularfeld auf //versteckt// geschalten wurde.
13 |Gesperrt wenn|Wenn die Bedingung erfüllt ist, wird das Formularelement nicht-editierbar geschaltet.
14 |Editierbar wenn|Wenn die Bedingung erfüllt ist, wird das Formularelement wieder editierbar geschaltet. Diese Option erscheint, wenn das Formularfeld auf //gesperrt// geschalten wurde.
15 |Mussfeld|Ist diese Option aktiviert, muss das Formularfeld zwingend ausgefüllt werden. Wenn diese Option aktiviert ist, werden unter //Mussfeld wenn// konfigurierte Bedingung ignoriert.
16 |Mussfeld wenn|Wenn die Bedingung erfüllt ist, wird das Formularelement zu einem Mussfeld.
17 |Mussfeldgruppe|Nur verfügbar, wenn Mussfeld ausgewählt ist. Legt die Mussfeldgruppe fest, zu der das Element gehören soll. Wenn zwei oder mehr Elemente zu einer Mussfeldgruppe gehören, muss mindestens eines davon einen Wert haben, alle anderen müssen aber nicht ausgefüllt werden.
18 |Prüfe serverseitig|Wenn diese Option aktiviert ist, werden die abgesendeten Daten auch auf dem Server geprüft. Die Daten werden im Browser geprüft, dennoch ist es technisch möglich, ungültige Formulare abzusenden. Schlägt die serverseitige Validierung fehl, erscheint im Formular die entsprechende Fehlermeldung.
19
20 {{version major="7" minor="2"/}} Bei der Verwendung einer benutzerdefinierten //Formel// als Bedingung ist diese Option funktionslos. Es kann in diesem Fall keine serverseitige Validierung durchgeführt werden.
21 {{/table}}
22
23 == Bedingungen ==
24
25 {{figure image="designer_element_select_properties_options_de.png"}}
26 Bei Bedingungen, die auf den Wert eines [[Auswahlelements>>doc:Formcycle.Designer.Form.FormElements.Selection]] zugreifen, wird der Wert genommen, wie er in der Spalte //Werte// eingetragen ist.
27 {{/figure}}
28
29 Bei allen Eigenschaften kann für die Bedingung ein Formularelement ausgewählt werden, welches dann geprüft wird. In der Auswahlliste stehen alle Elemente Namen zur Verfügung.
30
31 {{version major="7" minor="2"/}} Neben existierenden Formularelementen kann auch //Formel// ausgewählt werden. Es kann dann eine benutzerdefinierte Formel eingegeben werden, um beliebige Logik zu implementieren. Folgendes ist dabei zu beachten:
32
33 * Es muss sich um einen gültigen JavaScript-Ausdruck (expression) handeln, etwa {{code language="javascript"}}$("[name='tfVorname']").val() === "Max"{{/code}}.
34 ** JavaScript-Anweisungen (statements) sind nicht möglich, beispielsweise darf {{code language="javascript"}}var x = $("[name='tfVorname']").val() ; x === "Max"{{/code}} nicht verwendet werden.
35 ** Falls doch einmal erforderlich, sind Anweisungen durch Kapselung in einer IIFE (immediately invoked function expression) möglich: {{code language="javascript"}}(function(){var x = $("[name='tfVorname']").val() ; return x === "Max"})(){{/code}}
36 * Formular-Platzhalter können verwendet werden, um einfacher auf den Wert von Formularelementen zuzugreifen. Der Platzhalter wird durch den Wert des jeweiligen Formularelements ersetzt. Beispiel: {{code language="javascript"}}[%tfVorname%]==="Max"{{/code}}
37 ** Repräsentiert der Wert eines Formularelements eine Gleitkommazahl, wird der Platzhalter durch eine JavaScript-Zahl ersetzt. Beispiel: {{code language="javascript"}}[%tf1%]+[%tf2%] < 10{{/code}} (Summe beider Felder < 10). Andernfalls wird der Wert durch einen JavaScript-String ersetzt. Beispiel: {{code language="javascript"}}[%tf1%].toUpperCase() === "MAX"{{/code}} (Feldwert gleich "Max", ohne Berücksichtigung von Groß- und Kleinschreibung).
38 ** Der Wert, durch den der Platzhalter ersetzt wird, hängt von der Art des Elements ab:
39 *** Bei Checkboxen wird der Wert genommen, welcher im Formulardesigner unter //Wert bei angehakt// hinterlegt ist.
40 *** Bei Eingabefeldern und Textarea wird der vom Nutzer eingegebene Text als Wert genommen.
41 *** Bei Auswahlelementen mit Darstellung Combobox wird der technische Wert der ausgewählten Option als Wert genommen.
42 *** Bei Auswahlelementen mit Darstellung Checkbox und Radio-Button wird die Summe aller technischen Werte der ausgewählten Optionen als Wert genommen. Dies gilt auch für die Darstellung als Frage.
43 *** Bei Upload-Elementen wird der Dateiname der ausgewählten Datei als Wert genommen.
44 *** Bei Terminwähler wird das angezeigte Datum mit Uhrzeit als Wert genommen.
45 * Andere Platzhalter wie System-Platzhalter können ebenfalls verwendet werden: {{code language="javascript"}}[%$PROJECT_TITLE%] === "Mein Formular"{{/code}}.
46 * Es wird KEINE serverseitige Validierung von Formeln durchgeführt, auch wenn diese Option aktiviert ist.
47
48 Nach der Auswahl eines Elements öffnet sich eine weitere Auswahlliste mit folgenden Optionen:
49
50 * einen Wert hat
51 * keinen Wert hat
52 * gleich
53 * ungleich
54 * kleiner
55 * kleiner gleich
56 * größer
57 * größer gleich
58 * zwischen
59 * regulärer Ausdruck
60
61 {{info}}
62 Durch Klick auf das Auswahlsymbol rechts neben der Auswahlleiste kann mit der Maus direkt ein Formularelement ausgewählt werden. Bei großen Formularen kann die Auswahlliste sehr lang werden und man findet das gesuchte Elemente nur langsam.
63 {{/info}}
64
65 Wird der Wert eines [[Auswahlelements>>doc:Formcycle.Designer.Form.FormElements.Selection]] (//Checkbox//, //Radiobutton// oder //Liste//) geprüft, wird von der ausgewählten Option der Wert für die Prüfung verwendet, der am Formularelement in den Eigenschaften unter //Werte// in der Spalte Wert eingestellt ist.
66
67 {{table}}
68 |=Bedingung|=Beschreibung
69 |einen Wert hat / keinen Wert hat |(((Das Element wird versteckt, wenn das ausgewählte Element einen (keinen) Wert hat.
70
71 //Einen Wert haben// bedeutet dabei folgendes.
72
73 * Bei einer [[Checkbox>>doc:Formcycle.Designer.Form.FormElements.Checkbox]] wird das Element versteckt, wenn sie aktiviert wurde.
74 * Bei einem [[Auswahlelement>>doc:Formcycle.Designer.Form.FormElements.Selection]] wird das Element versteckt, wenn ein anderer Wert als //Bitte auswählen// gewählt wurde. Ist eine als Drop-Down-Auswahlliste dargestellte Auswahl kein Mussfeld, ist standardmäßig immer die erste Option ausgewählt. Handelt es sich bei der Drop-Down-Auswahlliste um ein Mussfeld, ist standardmäßig keine Option ausgewählt und es erscheint der Text //Bitte auswählen//.
75 * Bei einem [[Textfeld>>doc:Formcycle.Designer.Form.FormElements.Input]] wird das Element versteckt, wenn das Eingabefeld nicht leer ist.)))
76 |gleich|Es erscheint ein weiteres Eingabefeld zur Eingabe des zu prüfenden Wertes. Das Element wird nur versteckt, wenn der Wert des ausgewählten Elements den gleichen Wert hat.
77 |ungleich|Es erscheint ein weiteres Eingabefeld zur Eingabe des zu prüfenden Wertes. Das Element wird nur versteckt, wenn der Wert des ausgewählten Elements nicht den gleichen Wert hat.
78 |kleiner / kleiner gleich|Es erscheint ein weiteres Eingabefeld zur Eingabe des zu prüfenden Wertes. Das Element wird nur versteckt, wenn der Wert des ausgewählten Elements kleiner bzw. kleiner gleich dem eingegebenen Wert ist.
79 |größer / größer gleich|Es erscheint ein weiteres Eingabefeld zur Eingabe des zu prüfenden Wertes. Das Element wird nur versteckt, wenn der Wert des ausgewählten Elements größer bzw. größer gleich dem eingegebenen Wert ist.
80 |zwischen|Es erscheint ein weiteres Eingabefeld zur Eingabe des zu prüfenden Wertes. Das Element wird nur versteckt, wenn der Wert des ausgewählten Elements zwischen dem eingegebenen Wert ist. Das Interval wird als zwei mit einem Strich (//-//) getrennte Zahlen eingegeben, z.B. //2-10//. Negative Zahlen müssen in Klammern gesetzt werden, z.B. //(-10)-(-5)//.
81 |RegExp|Es erscheint ein weiteres Eingabefeld zur Eingabe des regulären Ausdruck. Das Element wird nur versteckt, wenn der Wert des ausgewählten Elements auf den regulären Ausdruck passt.
82 {{/table}}
83
84 == Automatisch leeren oder zurücksetzen ==
85
86 Bei den Eigenschaften //Versteckt wenn// und //Gesperrt wenn// kann zusätzlich noch ausgewählt werden, ob das Formularelement geleert oder zurückgesetzt (reset) werden soll, wenn es durch die Bedingung versteckt beziehungsweise gesperrt wird. Leeren bezieht sich dabei auf das Löschen des Werts. Beim Zurücksetzen wird der Wert des Formularelements auf den ursprünglichen Wert zurückgesetzt, den es beim Öffnen des Formulars hatte. Wird das Formular neu geöffnet, ist das der Wert, wie er im {{designer/}} eingestellt ist. Wird ein abgesendetes Formular im Posteingang geöffnet, ist der Initialwert der zuletzt abgesendete Wert.
87
88 Dies kann zum Beispiel für die Eingabe einer Adresse verwendet werden, wo zwischen einer Adresse und einem Postfach ausgewählt werden kann. Ist //Postfach// ausgewählt, dann ist das Eingabefeld für die Adresse nicht sichtbar und wird geleert. Beim Absenden des Formulars werden so nur die Postfachdaten und nicht die Adressdaten mitgesendet.
89
90 Beim Leeren oder Zurücksetzen von Formularelementen, die andere Formularelemente enthalten, werden alle Unterelemente geleert oder zurückgesetzt. Dies betrifft die Elemente [[Seite>>doc:Formcycle.Designer.Form.FormElements.Page]], [[Container>>doc:Formcycle.Designer.Form.FormElements.Container]], und [[Fieldset>>doc:Formcycle.Designer.Form.FormElements.Fieldset]].