Erstellen von benutzerspezifischen Erscheinungsbildern in HTML5-Formularen

Sie können mit Mobile Forms benutzerdefinierte Widgets einsetzen. Sie können mithilfe des Erscheinungsbild-Framework vorhandene jQuery Widgets erweitern oder Ihre eigenen benutzerdefinierten Widgets entwickeln. XFA engine uses various widgets, see Appearance framework for adaptive and HTML5 forms for detailed information.

Beispiel für ein standardmäßiges und benutzerdefiniertes Widget​Abbildung: Beispiel für ein Standard- und benutzerdefiniertes Widget

Integrieren benutzerdefinierter Widgets mit HTML5-Formularen

Profil erstellen 

Erstellen Sie ein Profil oder wählen Sie ein vorhandenes Profil, um ein benutzerdefiniertes Widget hinzuzufügen. Weitere Informationen zum Erstellen von Profilen finden Sie unter Erstellen benutzerdefinierter Profile.

Widget erstellen

HTML5-Formulare bieten eine Implementierung des Widget-Frameworks, das erweitert werden kann, um neue Widgets zu erstellen. Die Implementierung ist ein jQuery-Widget abstractWidget, dass zum Schreiben eines neuen Widgets erweitert werden kann. Das neue Widget kann nur durch Erweitern bzw. Überschreiben der unten erwähnten Funktionen ordnungsgemäß laufen.

Funktion/Klasse Beschreibung
render Die Renderfunktion gibt das jQuery-Objekt für das standardmäßige HTML-Element des Widgets zurück. Das standardmäßige HTML-Element sollte fokussierbar sein. Zum Beispiel <a>, <input> und <li>. Das zurückgegebene Element wird als $userControl verwendet. Wenn $userControl die oben genannte Beschränkung angibt, funktionieren die Funktionen der AbstractWidget-Klasse erwartungsgemäß, andernfalls müssen einige der gängigen APIs (focus, click) geändert werden.
getEventMap Gibt eine Zuordnung zur Konvertierung von HTML-Elementen zu XFA-Ereignissen zurück.
{
Weichzeichnen: XFA_EXIT_EREIGNIS,
}
Dieses Beispiel zeigt, dass der Weichzeichner ein HTML-Ereignis und XFA_EXIT_EREIGNIS ein entsprechendes XFA-Ereignis ist.
getOptionsMap Gibt eine Zuordnung mit detaillierten Informationen zurück, wie eine Option geändert werden kann. Die Schlüssel sind die Optionen, die dem Widget zur Verfügung gestellt werden, und Werte sind die Funktionen, die aufgerufen werden, wenn eine Änderung in dieser Option erkannt wird. Das Widget verfügt über Handler für alle allgemeinen Optionen (außer value und displayValue).
getCommitValue Das Widget-Framework lädt Funktionen sobald der Wert des Widgets im XFAModel gespeichert wird (beispielsweise bei einem exit-Ereignis eines textField). Die Implementierung sollte den Wert zurückgeben, der im Widget gespeichert wird. Der Handler erhält den neuen Wert für die Option.
showValue Standardmäßig wird in XFA beim Ereignis „enter“ der rawValue des Felds angezeigt. Diese Funktion wird aufgerufen, um dem Benutzer den „rawValue“ zu zeigen.
showDisplayValue Standardmäßig wird in XFA beim Ereignis „exit“ der formattedValue des Felds angezeigt. Diese Funktion wird aufgerufen, um dem Benutzer den „formattedValue“ zu zeigen.

Um ein eigenes Widget im oben erstellen Profil zu erstellen, müssen Sie die Verweise der JavaScript-Datei einschließen, die die überschriebenen und neu hinzugefügten Funktionen enthält. For example, the sliderNumericFieldWidget is a widget for numeric Fields. Um das Widget in Ihrem Profil in der Kopfzeile zu verwenden, fügen Sie die folgende Zeile hinzu:

window.formBridge.registerConfig("widgetConfig" , widgetConfigObject);

Registrieren von benutzerdefinierten Widgets mit XFA Scripting Engine 

When the custom widget code is ready, register the widget with the scripting engine by using registerConfigAPI for Form Bridge. Als Eingabe ist „widgetConfigObject“ erforderlich.

window.formBridge.registerConfig("widgetConfig",
        {
        ".<field-identifier>":"<name-of-the-widget>"
        }
    );

widgetConfigObject

Die Widget-Konfiguration wird als JSON-Objekt bereitgestellt (eine Sammlung von Schlüssel-Wert-Paaren), bei dem der Schlüssel die Felder identifiziert und der Wert für das Widget steht, das mit den Feldern verwendet werden soll. Eine Beispielkonfiguration sieht wie folgt aus:

*{*

*“identifier1” : “customwidgetname”,  
“identifier2” : “customwidgetname2”,  
..  
}*

wobei "identifier"ein jQuery CSS-Selektor ist, der ein bestimmtes Feld, eine Gruppe von Feldern eines bestimmten Typs oder alle Felder darstellt. Im Folgenden ist der Wert des Bezeichners in verschiedenen Fällen aufgeführt:

Typ des Bezeichners ID Beschreibung
Bestimmtes Feld mit Name „fieldname“ Bezeichner:"div.fieldname" Alle Felder mit dem Namen „fieldname“ werden mithilfe des Widgets gerendert.
Alle Felder des Typs "type"(wobei Typ NumericField, DateField usw. ist): Bezeichner: "div.type" Bei "Timefield"und "DateTimeField"ist der Typ "textfield", da diese Felder nicht unterstützt werden.
Alle Felder Bezeichner: "div.field"

Auf dieser Seite