Skip to main content

form

Create multi-field forms for structured user input on the dashboard.

Overview

The form node creates complete input forms with multiple fields. Supports various field types, validation, and submits all data as a single message. Perfect for configuration pages, data entry, and multi-parameter settings.

Multi
Field
Valid
ation
Submit
Button
Reset
Clear

Properties

Property Type Default Description
group string - Dashboard group
label string "Form" Form title
fields array [] Form field definitions
submitLabel string "Submit" Submit button text
resetLabel string "Reset" Reset button text (empty to hide)

Field Types

Text Field

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

Number Field

{
  "type": "number",
  "label": "Threshold",
  "name": "threshold",
  "min": 0,
  "max": 100
}

Checkbox

{
  "type": "checkbox",
  "label": "Enable Alerts",
  "name": "enableAlerts"
}

Select

{
  "type": "select",
  "label": "Mode",
  "name": "mode",
  "options": ["Auto", "Manual"]
}

Example: Device Configuration Form

Complete device setup form with multiple field types.

// Form node configuration:
{
  "label": "Device Configuration",
  "fields": [
    {
      "type": "text",
      "label": "Device Name",
      "name": "name",
      "required": true,
      "placeholder": "Enter device name"
    },
    {
      "type": "text",
      "label": "Location",
      "name": "location"
    },
    {
      "type": "number",
      "label": "Sample Rate (ms)",
      "name": "sampleRate",
      "min": 100,
      "max": 60000,
      "value": 1000
    },
    {
      "type": "select",
      "label": "Operating Mode",
      "name": "mode",
      "options": [
        { "label": "Automatic", "value": "auto" },
        { "label": "Manual", "value": "manual" }
      ]
    },
    {
      "type": "checkbox",
      "label": "Enable Logging",
      "name": "logging"
    }
  ],
  "submitLabel": "Save Configuration"
}

// On submit, output:
{
  "payload": {
    "name": "Sensor-01",
    "location": "Living Room",
    "sampleRate": 5000,
    "mode": "auto",
    "logging": true
  }
}

Pre-fill Form Values

// Send existing values to pre-fill form
msg.payload = {
    name: "Existing Device",
    location: "Kitchen",
    sampleRate: 2000,
    mode: "manual",
    logging: false
};

// Form will show these values when it receives message

Related Nodes