Skip to content

Formular ui-form

Demo Ausprobieren

Fügt der Benutzeroberfläche ein Formular hinzu, das hilft, mehrere Werte vom Benutzer bei Klick auf den Absenden-Button als Objekt in msg.payload zu sammeln.

Eigenschaften

PropDynamicDescription
GruppeDefiniert, in welcher Gruppe des UI-Dashboards dieses Widget gerendert wird.
GrößeSteuert die Breite des Buttons in Bezug auf die übergeordnete Gruppe. Der Maximalwert ist die Breite der Gruppe.
BeschriftungEine Beschriftung, die vor den Formularzeilen angezeigt wird.
OptionenEine Liste der im Formular dargestellten Zeilen. Jede Zeile hat die folgenden Eigenschaften:
  • Beschriftung: Eine Beschriftung, die in der Formularzeile angezeigt wird.
  • Name: Der Name des Formularelements, der als Schlüssel im msg.payload-Objekt verwendet wird.
  • Typ: Der anzuzeigende Eingabetyp. Optionen - text | multiline | password | email | number | checkbox | switch | date | time
  • Erforderlich: Ob das Formularelement ausgefüllt werden muss, bevor das Formular abgeschickt werden kann.
ButtonsDer Text, der auf jedem der Formularbuttons angezeigt wird. Wenn der "Abbrechen"-Text leer bleibt, wird kein Abbrechen-Button angezeigt.
Zwei SpaltenRendert das Formular als zweispaltiges Layout.
Zurücksetzen bei AbsendenWenn aktiviert, wird das Formular nach dem Absenden in einen leeren Zustand zurückgesetzt.
ThemaDefiniert, wie das Thema berechnet wird, das im `msg`-Objekt enthalten ist, wenn das Formular abgeschickt wird.
Dropdown-OptionenDiese Liste kann Optionen für mehrere Dropdown-/Auswahlfelder in einem einzigen Formular definieren.

Dynamische Eigenschaften

Dynamic properties are those that can be overriden at runtime by sending a particular msg to the node.

Where appropriate, the underlying values set within Node-RED will be overriden by the values set in the received messages.

PropPayloadStructuresExample Values
Beschriftungmsg.ui_update.labelString
Optionenmsg.ui_update.optionsArray<Object>
Dropdown-Optionenmsg.ui_update.dropdownOptionsArray<{ dropdown: <string>, key: <string>, label: <string> }>
Klassemsg.classString

Formular-Daten ausfüllen

Wenn Sie Standardwerte festlegen oder Werte in Ihrem Formular vorab ausfüllen möchten, können Sie dies tun, indem Sie einen msg.payload-Wert übergeben. Dieser Wert sollte ein Objekt sein, wobei jeder Schlüssel den key eines Formularelements darstellt und der Wert den Standardwert für dieses Element darstellt.

Zum Beispiel, wenn Sie ein Formular mit einem "Text"-Feld vorab ausfüllen möchten, mit einem Namen, "first_name", können Sie die folgende msg übergeben:

js
msg.payload = {
    "first_name": "John"
}

Formularelemente definieren (Optionen)

Wenn Sie die Konfiguration für Ihr ui-form überschreiben und Details Ihrer Elemente bereitstellen möchten, nachdem Ihr Node-RED-Flow bereitgestellt wurde, können Sie dies tun, indem Sie einen msg.ui_update.options-Wert übergeben. Dieser Wert sollte ein Array von Objekten sein, wobei jedes Objekt ein Formularelement darstellt. Jedes Objekt sollte die folgenden Eigenschaften haben:

Element: Text

json
{
    "type": "text",
    "label": "Name",
    "key": "name",
    "required": true
}

Element: Mehrzeilig

json
{
    "type": "multiline",
    "label": "Name",
    "key": "name",
    "required": true,
    "rows": 4
}

Element: Passwort

json
{
    "type": "password",
    "label": "Passwort",
    "key": "password",
    "required": true
}

Element: E-Mail

json
{
    "type": "email",
    "label": "E-Mail-Adresse",
    "key": "email",
    "required": true
}

Element: Nummer

json
{
    "type": "number",
    "label": "Alter",
    "key": "age",
    "required": true
}

Element: Kontrollkästchen

json
{
    "type": "checkbox",
    "label": "Newsletter abonnieren",
    "key": "newsletter"
}

Element: Schalter

json
{
    "type": "switch",
    "label": "Benachrichtigungen aktivieren",
    "key": "notifications"
}

Element: Datum

json
{
    "type": "date",
    "label": "Geburtsdatum",
    "key": "dob",
    "required": true
}

Element: Zeit

json
{
    "type": "time",
    "label": "Geburtszeit",
    "key": "tob",
    "required": true
}

Element: Dropdown

json
{
    "type": "dropdown",
    "label": "Dropdown",
    "key": "selection"
}

Wenn Sie die Konfiguration für Ihr ui-form überschreiben und Details Ihrer Dropdown-Optionen bereitstellen möchten, nachdem Ihr Node-RED-Flow bereitgestellt wurde, können Sie dies tun, indem Sie einen msg.ui_update.dropdownOptions-Wert übergeben. Dieser Wert sollte ein Array von Objekten sein, wobei jedes Objekt ein Dropdown-Element darstellt. Jedes Objekt sollte die folgenden Eigenschaften haben:

json
[{
    "dropdown": "Dropdown-Name",
    "value": "1",
    "label": "Option 1"
}]

Beispiel

Beispiel eines FormularsBeispiel eines gerenderten Formulars in einem Dashboard.