... |
... |
@@ -24,10 +24,27 @@ |
24 |
24 |
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. |
25 |
25 |
{{/figure}} |
26 |
26 |
|
27 |
|
-Bei allen Eigenschaften kann für die Bedingung ein Formularelement ausgewählt werden, welches dann geprüft wird. |
|
27 |
+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. |
28 |
28 |
|
29 |
|
-In der Auswahlliste stehen alle Elemente Namen zur Verfügung. Nach der Auswahl eines Elements öffnet sich eine weitere Auswahlliste mit folgenden Optionen: |
|
29 |
+{{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: |
30 |
30 |
|
|
31 |
+* Es muss sich um einen gültigen JavaScript-Ausdruck (expression) handeln, etwa {{code}}$("[name='tfVorname']").val() === "Max"{{/code}}. |
|
32 |
+** JavaScript-Anweisungen (statements) sind nicht möglich, beispielsweise darf {{code}}var x = $("[name='tfVorname']").val() ; x === "Max"{{/code}} nicht verwendet werden. |
|
33 |
+** Falls doch einmal erforderlich, sind Anweisungen durch Kapselung in einer IIFE (immediately invoked function expression) möglich: {{code}}(function(){var x = $("[name='tfVorname']").val() ; return x === "Max"})(){{/code}} |
|
34 |
+* 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}}[%tfVorname%]==="Max"{{/code}} |
|
35 |
+** Repräsentiert der Wert eines Formularelements eine Gleitkommazahl, wird der Platzhalter durch eine JavaScript-Zahl ersetzt. Beispiel: {{code}}[%tf1%]+[%tf2%] < 10{{/code}} (Summe beider Felder < 10). Andernfalls wird der Wert durch einen JavaScript-String ersetzt. Beispiel: {{code}}[%tf1%].toUpperCase() === "MAX"{{/code}} (Feldwert gleich "Max", ohne Berücksichtigung von Groß- und Kleinschreibung). |
|
36 |
+** Der Wert, durch den der Platzhalter ersetzt wird, hängt von der Art des Elements ab: |
|
37 |
+*** Bei Checkboxen wird der Wert genommen, welcher im Formulardesigner unter //Wert bei angehakt// hinterlegt ist. |
|
38 |
+*** Bei Eingabefeldern und Textarea wird der vom Nutzer eingegebene Text als Wert genommen. |
|
39 |
+*** Bei Auswahlelementen mit Darstellung Combobox wird der technische Wert der ausgewählten Option als Wert genommen. |
|
40 |
+*** 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. |
|
41 |
+*** Bei Upload-Elementen wird der Dateiname der ausgewählten Datei als Wert genommen. |
|
42 |
+*** Bei Terminwähler wird das angezeigte Datum mit Uhrzeit als Wert genommen. |
|
43 |
+* Andere Platzhalter wie System-Platzhalter können ebenfalls verwendet werden: {{code}}[%$PROJECT_TITLE%] === "Mein Formular"{{/code}}. |
|
44 |
+* Es wird KEINE serverseitige Validierung von Formeln durchgeführt, auch wenn diese Option aktiviert ist. |
|
45 |
+ |
|
46 |
+Nach der Auswahl eines Elements öffnet sich eine weitere Auswahlliste mit folgenden Optionen: |
|
47 |
+ |
31 |
31 |
* einen Wert hat |
32 |
32 |
* keinen Wert hat |
33 |
33 |
* gleich |