AEM 6.4 hat das Ende der erweiterten Unterstützung erreicht und diese Dokumentation wird nicht mehr aktualisiert. Weitere Informationen finden Sie in unserer technische Unterstützung. Unterstützte Versionen suchen here.
Adaptive Formulare bieten ein optimiertes und vereinfachtes Ausfüllen von Formularen für Endbenutzer mit dynamischen Skriptfunktionen. So können Sie hiermit Ausdrücke schreiben, um verschiedene Verhaltensweisen hinzuzufügen (z. B. dynamisch eingeblendete bzw. ausgeblendete Felder und Bereiche). Außerdem können Sie auch berechnete Felder oder Überprüfungslogik hinzufügen, Felder als schreibgeschützt festlegen und vieles mehr. Das dynamische Verhalten basiert auf den vom Benutzer eingegebenen oder vorab eingetragenen Daten.
JavaScript ist die Ausdruckssprache für adaptive Formulare. Alle Ausdrücke sind gültige JavaScript-Ausdrücke und verwenden Skriptmodell-APIs für adaptive Formulare. Diese Ausdrücke geben Werte bestimmter Typen zurück. Eine vollständige Liste der Klassen, Ereignisse, Objekte und öffentlichen APIs für adaptive Formulare finden Sie unter JavaScript-Bibliotheks-API-Referenz für adaptive Formulare.
field1.value
Wiederholungsbereiche sind Instanzen eines Bereichs, die mithilfe einer Skripterstellungs-API oder vorausgefüllter Daten dynamisch hinzugefügt oder entfernt werden. Detaillierte Informationen zur Verwendung von Wiederholungsfeldern finden Sie unter Erstellen von Formularen mit wiederholbaren Abschnitten.
Öffnen Sie zum Erstellen eines Wiederholungsbereichs im Bereichsdialogfeld die Einstellungen und legen Sie den Wert des Felds für die maximale Anzahl auf einen Wert größer als 1 fest.
Der Wert für die minimale Anzahl der Feldwiederholungseinstellungen kann eine oder mehrere sein, darf jedoch nicht größer als der Wert für die maximale Anzahl sein.
Wenn ein Ausdruck auf ein Feld eines Wiederholungsfelds verweist, werden die Feldnamen im Ausdruck in das nächstgelegene Wiederholungselement aufgelöst.
Adaptive Formulare bieten einige spezielle Funktionen, um die Berechnung für wiederholbare Bereiche wie Summe, Anzahl, Minimum, Maximum, Filter und viele mehr zu vereinfachen. Eine vollständige Liste der Funktionen finden Sie unter JavaScript-Bibliotheks-API-Referenz für adaptive Formulare
Es gibt folgende APIs zum Manipulieren von Instanzen von Wiederholungsfeldern:
panel1.instanceManager.addInstance()
panel1.instanceIndex
_panel1 or panel1.instanceManager
_panel1.removeInstance(panel1.instanceIndex)
In adaptiven Formularen können Sie Ausdrücke zum Hinzufügen von Verhaltensweisen schreiben, wie etwa dynamisches Einblenden/Ausblenden von Feldern und Fenstern. Sie können auch Ausdrücke schreiben, um berechnete Felder hinzuzufügen, Felder als schreibgeschützt festzulegen, Überprüfungslogik hinzuzufügen und vieles mehr. Adaptive Formulare unterstützen folgende Ausdrücke:
Ausdrücke für den Zugriff: Zum Aktivieren/Deaktivieren eines Felds.
Ausdrücke für die Berechnung: Zum automatischen Berechnen des Werts eines Felds.
Ausdruck für ein Klickereignis: Zum Verarbeiten von Aktionen beim Klicken auf eine Schaltfläche.
Initialisierungsskript: Zum Durchführen einer Aktion beim Initialisieren eines Felds.
Optionsausdruck: um eine Dropdown-Liste dynamisch auszufüllen.
Ausdruck für die Zusammenfassung: Zum dynamischen Berechnen des Titels eines Akkordeons.
Ausdrücke für die Überprüfung: Zum Überprüfen eines Felds.
Skript zum Bestätigen von Werten: Zum Ändern der Komponenten eines Formulars, nachdem der Wert eines Felds geändert wurde.
Ausdruck für die Sichtbarkeit: Zum Steuern der Sichtbarkeit eines Felds oder Bereichs.
Ausdruck für den Abschluss von Schritten: Um zu vermeiden, dass ein Benutzer in einem Assistenten zum nächsten Schritt wechselt.
Mit dem Ausdruck für den Zugriff können Sie ein Feld aktivieren oder deaktivieren. Wenn der Ausdruck den Wert eines Felds verwendet, wird der Ausdruck erneut ausgelöst, sobald der Wert des Felds sich ändert.
Gilt für: fields
Rückgabetyp: Der Ausdruck gibt einen booleschen Wert zurück, der angibt, ob das Feld aktiviert oder deaktiviert ist. true bedeutet, dass das Feld aktiviert ist und false steht für die Deaktivierung des Felds.
Beispiel: Wenn ein Feld nur dann aktiviert sein soll, wenn der Wert von field1 auf X eingestellt ist, lautet der Ausdruck für den Zugriff wie folgt: field1.value == "X"
Der Ausdruck für Berechnungen wird verwendet, um den Wert eines Felds unter Verwendung eines Ausdrucks automatisch zu berechnen. Normalerweise verwendet ein solcher Ausdruck die Werteigenschaft anderer Felder. Beispiel: field2.value + field3.value
. Sobald sich der Wert von field2
oder field3
ändert, wird der Ausdruck erneut ausgelöst und der Wert neu berechnet.
Gilt für: fields
Rückgabetyp: Der Ausdruck gibt einen Wert zurück, der mit dem Feld kompatibel ist, in dem das Ausdrucksergebnis angezeigt wird (z. B. Dezimalzahl).
Beispiel: Zum Anzeigen der Summe zweier Felder in field1 lautet der Berechnungsausdruck wie folgt:
field2.value + field3.value
Der Ausdruck click verarbeitet die Aktionen, die beim Klicken auf eine Schaltfläche ausgeführt werden. GuideBridge bietet standardmäßig APIs zum Ausführen verschiedener Funktionen wie Senden und Überprüfen, die zusammen mit dem Ausdruck für ein Klickereignis verwendet werden. Eine vollständige Liste der APIs finden Sie in den GuideBridge-APIs.
Gilt für: Felder mit Schaltfläche
Rückgabetyp: Der Ausdruck für ein Klickereignis gibt keinen Wert zurück. Wenn ein Ausdruck einen Wert zurückgibt, wird dieser Wert ignoriert.
Beispiel: Zum Ausfüllen eines Textfelds textbox1 beim Klicken auf eine Schaltfläche mit dem Wert AEM Forms lautet der Ausdruck für ein Klickereignis wie folgt: textbox1.value="AEM Forms"
"
Das Initialisierungsskript wird ausgelöst, wenn ein adaptives Formular initialisiert wird. Je nach Szenario verhält sich das Initialisierungsskript wie folgt:
Gilt für: Felder und Bedienfeld
Rückgabetyp: Der Initialisierungsscript-Ausdruck gibt keinen Wert zurück. Wenn ein Ausdruck einen Wert zurückgibt, wird dieser Wert ignoriert.
Beispiel: Damit in einem Szenario mit vorausgefüllten Daten Felder, deren Wert als null gespeichert ist, mit dem Standardwert 'Adaptive Forms'
aufgefüllt werden, lautet der Ausdruck für das Initialisierungsskript wie folgt:
if(this.value==null) this.value='Adaptive Forms';
Der Ausdruck für Optionen wird zum dynamischen Ausfüllen von Optionen in einem Dropdown-Listenfeld verwendet.
Gilt für: Dropdown-Listenfelder
Rückgabetyp: Der Optionsausdruck gibt ein Array von Zeichenfolgenwerten zurück. Jeder Wert kann eine einfache Zeichenfolge sein, z. B. Männlich oder in einem Schlüssel-Wert-Paarformat, z. B. 1=Männlich
Beispiel: Wenn Sie den Wert eines Felds basierend auf dem Wert eines anderen Felds ausfüllen möchten, geben Sie einen einfachen Ausdruck für Optionen an. Beispiel: Um ein Feld Anzahl der Kinder basierend auf dem Wert Familienstand eines anderen Felds auszufüllen, lautet der Ausdruck wie folgt:
marital_status.value == "married" ? ["1=One", "2=two"] : ["0=Zero"]
.
Wann immer der Wert von marital_status geändert wird, wird der Ausdruck erneut ausgelöst. Sie können das Dropdown-Menü auch über einen REST-Dienst auffüllen. Detaillierte Informationen finden Sie unter Dynamisches Ausfüllen von Dropdown-Listen.
Der Zusammenfassungsausdruck berechnet dynamisch den Titel eines untergeordneten Bedienfelds eines Akkordeon-Layout-Bedienfelds. Sie können den Zusammenfassungsausdruck in einer Regel angeben, die ein Formularfeld oder eine benutzerdefinierte Logik zum Auswerten des Titels verwendet. Der Ausdruck wird ausgeführt, wenn das Formular initialisiert wird. Wenn Sie ein Formular vorausfüllen, wird der Ausdruck ausgeführt, nachdem die Daten vorab ausgefüllt wurden oder wenn sich der Wert von abhängigen Feldern ändert, die in dem Ausdruck verwendet werden.
Der Zusammenfassungsausdruck wird in der Regel für das Wiederholen von untergeordneten Elementen eines Akkordeon-Layout-Bedienfelds verwendet, um einen aussagekräftigen Titel für jedes untergeordnete Bedienfeld zur Verfügung zu stellen.
Gilt für: Bedienfelder, die direkt untergeordnete Elemente eines Bedienfelds sind, deren Layout als Akkordeon konfiguriert ist.
Rückgabetyp: Der Ausdruck gibt eine Zeichenfolge zurück, die zum Titel des Akkordeons wird.
Beispiel: „Kontonummer : “ + textbox1.value
Der Ausdruck für die Überprüfung wird zur Überprüfung der Felder unter Verwendung des entsprechenden Ausdrucks verwendet. Normalerweise verwenden solche Ausdrücke reguläre Ausdrücke zusammen mit dem Feldwert, um ein Feld zu überprüfen. Bei jeder Änderung am Wert des Felds wird der Ausdruck erneut ausgelöst und der Überprüfungsstatus des Felds erneut berechnet.
Gilt für: fields
Rückgabetyp: Der Ausdruck gibt einen booleschen Wert zurück, der den Überprüfungsstatus des Felds wiedergibt. Der Wert false bedeutet, dass das Feld ungültig ist, und true bedeutet, dass das Feld gültig ist.
Beispiel: Für ein Feld, das eine britische Postleitzahl enthalten soll, lautet der Ausdruck für die Überprüfung wie folgt:
(this.value && this.value.match(/^(GIR 0AA|[A-Z]{1,2}\d[A-Z0-9]? ?[0-9][A-Z]{2}\s*)$/i) == null) ? false : true
Wenn im vorstehenden Beispiel der nicht leere Wert mit dem Muster nicht übereinstimmt, gibt der Ausdruck false zurück und zeigt damit an, dass das Feld nicht gültig ist.
Wenn Sie einen Überprüfungsausdruck für ein nicht obligatorisches oder ein obligatorisches Feld eingeben, wird der Ausdruck unabhängig vom Sichtbarkeitsstatus des Felds bewertet. Um die Validierung für die ausgeblendeten Felder zu beenden, setzen Sie die Eigenschaft validationsDisabled in der Initialisierung oder im Skript zum Bestätigen von Werten auf "true". Beispiel: this.validationsDisabled=true
Das Skript zum Bestätigen von Werten wird ausgelöst, wenn:
Gilt für: fields
Rückgabetyp: Der Ausdruck für das Skript zum Bestätigen von Werten gibt keinen Wert zurück. Wenn ein Ausdruck einen Wert zurückgibt, wird dieser Wert ignoriert.
Beispiel: Um kleingeschriebene Buchstaben nach Eingabe in das Feld zu Großbuchstaben zu ändern, sieht der Ausdruck für das Bestätigen von Werten wie folgt aus:
this.value=this.value.toUpperCase()
Sie können die Ausführung des Skripts zum Bestätigen von Werten deaktivieren, wenn der Wert eines Felds programmgesteuert geändert wird. Gehen Sie dazu zu https://[server]:[port]/system/console/configMgr and change
Adaptive Forms-Version für Kompatibilität nach AEM Forms 6.1. Danach wird das Skript zum Bestätigen von Werten nur ausgeführt, wenn der Benutzer den Wert des Felds über die Benutzeroberfläche ändert.
Der Ausdruck für die Sichtbarkeit wird verwendet, um die Sichtbarkeit des Felds/Bereichs zu steuern. Normalerweise verwendet der Ausdruck für die Sichtbarkeit die Werteigenschaft eines Felds und wird erneut ausgelöst, sobald sich dieser Wert ändert.
Gilt für: Felder und Fenster
Rückgabetyp: Der Ausdruck gibt einen booleschen Wert zurück, der den Sichtbarkeitsstatus des Felds/Fensters wiedergibt. false bedeutet, dass das Feld oder das Fenster nicht sichtbar ist, und „true“ bedeutet, dass das Feld oder das Fenster sichtbar ist.
Beispiel: Für einen Bereich, der nur sichtbar sein soll, wenn der Wert von field1 auf Male festgelegt ist, lautet der Ausdruck für die Sichtbarkeit wie folgt: field1.value == "Male"
Der Ausdruck zum Abschluss von Schritten wird verwendet, um zu verhindern, dass ein Benutzer zum nächsten Schritt eines Assistenten-Layouts geht. Diese Ausdrücke werden verwendet, wenn Bedienfelder über ein Assistentenlayout verfügen (Formulare mit mehreren Schritten, die jeweils einen Schritt zeigen). Der Benutzer kann nur dann in den nächsten Schritt, Bereich oder Unterabschnitt wechseln, wenn im aktuellen Abschnitt alle erforderlichen Werte eingetragen wurden und gültig sind.
Gilt für: Bedienfelder mit Layout des Elements auf "Assistent"eingestellt.
Rückgabetyp: Der Ausdruck gibt einen booleschen Wert zurück, der angibt, dass das aktuelle Bedienfeld gültig ist oder nicht. True bedeutet, dass der aktuelle Bereich gültig ist und der Benutzer zum nächsten Fenster navigieren kann.
Beispiel: In einem Formular, das in verschiedenen Bereichen organisiert ist, wird das aktuelle Bedienfeld vor der Navigation zum nächsten Bedienfeld überprüft. In solchen Fällen werden die Ausdrücke zum Abschluss von Schritten verwendet. Im Allgemeinen verwenden diese Ausdrücke die GuideBridge-Validierungs-API. Beispiel für einen Ausdruck zum Abschluss von Schritten:
window.guideBridge.validate([],this.panel.navigationContext.currentItem.somExpression)
Es gibt mehrere Methoden, um einem adaptiven Formular eine Feldüberprüfung hinzuzufügen. Wenn einem Feld eine Überprüfung hinzugefügt wird, bedeutet True, dass der in das Feld eingegebene Wert gültig ist. False bedeutet, dass der Wert ungültig ist. Wenn Sie die Tabulatortaste in ein und aus einem Feld springen, wird die Fehlermeldung nicht generiert.
Die Methoden zum Hinzufügen von Überprüfungen zu einem Feld sind:
Um eine Komponente als obligatorisch festzulegen, können Sie im Dialogfeld Bearbeiten der Komponente die Option Titel und Text > Erforderlich auswählen. Sie können auch die entsprechenden erforderliche Nachricht (optional). .
Für ein Feld stehen mehrere Überprüfungsmuster für den sofortigen Einsatz zur Verfügung. Suchen Sie zum Auswählen eines Überprüfungsmusters im Dialogfeld Bearbeiten der Komponente den Abschnitt Muster und wählen Sie Muster aus. Sie können im Textfeld Muster ein eigenes benutzerspezifisches Überprüfungsmuster erstellen. Als Überprüfungsstatus wird nur dann True zurückgegeben, wenn die eingegebenen Daten mit dem Überprüfungsmuster übereinstimmen. Andernfalls wird False zurückgegeben. Informationen zum Schreiben Ihres eigenen benutzerdefinierten Überprüfungsmusters finden Sie unter Unterstützung der Picture-Klausel für HTML5-Formulare.
Die Validierung eines Felds kann auch mithilfe von Ausdrücken für verschiedene Felder berechnet werden. Diese Ausdrücke werden in Überprüfungsskript des Skript Tab von Bearbeiten Dialogfeld der Komponente. Der Überprüfungsstatus eines Felds hängt davon ab, welchen Wert der Ausdruck zurückgibt. Informationen darüber, wie solche Ausdrücke geschrieben werden, finden Sie unter Ausdruck für die Überprüfung.
Anzeigeformat kann verwendet werden, um die Daten in verschiedenen Formaten anzuzeigen. Beispielsweise können Sie das Anzeigeformat verwenden, um eine Telefonnummer mit Bindestrichen anzuzeigen, die Postleitzahl zu formatieren oder eine Datumsauswahl durchzuführen. Diese Anzeigemuster können über die Muster Abschnitt Bearbeiten Dialogfeld einer Komponente. Ähnlich wie bei den oben erwähnten Überprüfungsmustern können Sie benutzerspezifische Darstellungsmuster schreiben.
GuideBridge ist eine Sammlung von APIs, die zur Interaktion mit adaptiven Formularen im Speichermodell in einem Browser verwendet werden können. Eine ausführliche Einführung in die Guide Bridge-API, Klassenmethoden und offen gelegte Ereignisse finden Sie unter JavaScript-Bibliotheks-API-Referenz für adaptive Formulare.
Es wird empfohlen, die GuideBridge-Ereignis-Listener nicht in Ausdrücken zu verwenden.
Zum Zurücksetzen von Formularfeldern können Sie die guideBridge.reset()
-API in dem Ausdruck für ein Klickereignis einer Schaltfläche auslösen. Ähnlich funktioniert eine Submit-API, die als ein Ausdruck für ein Klickereignis aufgerufen werden kann: guideBridge.submit()
.
Sie können die setFocus()
-API verwenden, um den Fokus auf verschiedene Felder oder Bereiche zu legen (der Bereichsfokus ist automatisch auf das erste Feld festgelegt). setFocus()
stellt eine große Auswahl von Optionen für Navigationszwecke bereit, wie zum Beispiel für das Navigieren über Bereiche hinweg, das Durchlaufen zum vorigen/nächsten Element, das Festlegen des Fokus auf ein bestimmtes Feld und vieles mehr. Wenn Sie beispielsweise in den nächsten Bereich wechseln möchten, können Sie den folgenden Ausdruck verwenden: guideBridge.setFocus(this.panel.somExpression, 'nextItem').
Zum Validieren eines adaptiven Formulars oder seiner spezifischen Bereiche verwenden Sie guideBridge.validate(errorList, somExpression).
Sie können die GuideBridge-APIs auch außerhalb von Ausdrücken verwenden. Sie können die GuideBridge-API beispielsweise dazu verwenden, die Kommunikation zwischen Seiten-HTML, in der das adaptive Formular integriert ist, und dem Formularmodell festzulegen. Darüber hinaus können Sie den Wert festlegen, der aus einem übergeordneten Element des iFrame kommt, in dem das Formular integriert ist.
Zum Verwenden der GuideBridge-API im oben erwähnten Beispiel erfassen Sie eine Instanz von GuideBridge. Zum Erfassen einer Instanz überwachen Sie das bridgeInitializeStart
-Ereignis eines window
-Objekts:
window.addEventListener("bridgeInitializeStart", function(evnt) {
// get hold of the guideBridge object
var gb = evnt.detail.guideBridge;
//wait for the completion of AF
gb.connect(function (){
//this function will be called after Adaptive Form is initialized
})
})
In AEM empfiehlt es sich, den Code in eine clientLib zu schreiben und dann in Ihre Seite einzufügen (header.jsp oder footer.jsp der Seite).
Um GuideBridge nach Initialisierung des Formulars zu verwenden (das bridgeInitializeComplete
-Ereignis wird gesendet), rufen Sie die GuideBridge-Instanz mit window.guideBridge
auf. Sie können den GuideBridge-Initialisierungsstatus mithilfe der guideBride.isConnected
-API überprüfen.
GuideBridge stellt auch bestimmte Ereignisse für externe Skripte auf der Hosting-Seite bereit. Externe Skripte können diese Ereignisse überwachen und verschiedene Vorgänge ausführen. Wenn sich beispielsweise der Benutzername in einem Formular ändert, ändert sich auch der in der Kopfzeile der Seite angezeigte Name. Ausführliche Informationen zu solchen Ereignissen finden Sie in der JavaScript-Bibliotheks-API-Referenz für adaptive Formulare.
Verwenden Sie den folgenden Code, um Handler zu registrieren:
guideBridge.on("elementValueChanged", function (event, data) {
// execute some logic when value of a field is changed
});
Wie oben erwähnt, ermöglicht es adaptive Formulare dem Autor, Muster für Validierungs- oder Anzeigeformate bereitzustellen. Über die Verwendung von Mustern für den sofortigen Einsatz können Sie wiederverwendbare benutzerdefinierte Muster für eine Komponente eines adaptiven Formulars verwenden. Beispiel: Sie können ein Textfeld oder ein numerisches Feld definieren. Einmal definiert, können Sie diese Muster in allen Formularen für einen bestimmten Typ von Komponente verwenden. Sie können zum Beispiel ein benutzerdefiniertes Muster für ein Textfeld erstellen und es in den Textfeldern in ihren adaptiven Formularen verwenden. Sie können das benutzerspezifische Muster auswählen, indem Sie im Dialogfeld „Bearbeiten“ einer Komponente auf den Abschnitt „Muster“ zugreifen. Weitere Informationen zur Musterdefinition oder zum Musterformat finden Sie unter Unterstützung der Picture-Klausel für HTML5-Formulare.
Führen Sie die folgenden Schritte durch, um ein benutzerspezifisches Muster für einen bestimmten Feldtyp zu erstellen und es dann für alle Felder desselben Typs wiederzuverwenden:
Navigieren Sie in Ihrer Autoreninstanz zu CRXDE Lite.
Erstellen Sie einen Ordner, um Ihre benutzerdefinierten Muster beizubehalten. Erstellen Sie unter dem Verzeichnis /apps einen Knoten des Typs sling:folder. Beispiel: Erstellen Sie einen Knoten mit dem Namen customPatterns
. Erstellen Sie unter diesem Knoten einen weiteren Knoten des Typs nt:unstructed
und geben Sie ihm den Namen textboxpatterns
. Dieser Knoten enthält die verschiedenen benutzerdefinierten Muster, die Sie hinzufügen möchten.
Öffnen Sie die Registerkarte Eigenschaften des erstellten Knotens. Beispiel: Öffnen Sie die Registerkarte „Eigenschaften“ von textboxpatterns
. Fügen Sie diesem Knoten die Eigenschaft guideComponentType
hinzu und legen Sie ihren Wert auf fd/af/components/formatter/guideTextBox fest.
Der Wert dieser Eigenschaft variiert je nach dem Feld, für das Sie die Muster definieren möchten. Bei numerischen Feldern lautet der Wert der Eigenschaft guideComponentType
fd/af/components/formatter/guideNumericBox. Der Wert für das Feld „Datepicker“ lautet fd/af/components/formatter/guideDatepicker.
Sie können ein benutzerspezifisches Muster hinzufügen, indem Sie dem Knoten textboxpatterns
eine Eigenschaft zuweisen. Fügen Sie eine Eigenschaft mit einem Namen (z. B. pattern1
) hinzu und legen Sie ihren Wert auf das Muster fest, das Sie hinzufügen möchten. Beispiel: Fügen Sie eine Eigenschaft pattern1
mit dem Wert „Fax=text{99-999-9999999}“ hinzu. Das Muster ist für alle Textfelder verfügbar, die Sie in adaptiven Formularen verwenden.
Abbildung: Benutzerdefinierte Muster erstellen