bricks/docs/en/form.md
2025-11-19 12:30:39 +08:00

6.1 KiB

InlineForm

Control Function: Embeds a submittable form inline, supporting field input, validation, and toolbar operations (submit, reset, cancel). Suitable for lightweight form embedding scenarios.
Type: Ordinary control
Parent Control: bricks.FormBase

Initialization Parameters

Parameter Type Description
fields Array Array of form field configurations; each field object includes information such as name, label, and uitype.
height String Optional, default is "100%", sets the height of the control.
width String Optional, default is "100%", sets the width of the control.
overflow String Optional, default is "auto", controls how overflow content is displayed.

Note: All options are passed into the constructor via opts.

Main Events

Event Name Trigger Condition Callback Parameters
submit(data) Triggered when the user clicks the "Submit" button and data passes validation. data: FormData object or plain object containing form data.
submited(resp) Triggered after the submission request completes (regardless of success or failure). resp: Response object; returned content can be obtained via await resp.json().
cancel Triggered when the user clicks the "Cancel" button. No parameters.
reset Triggered when the user clicks the "Reset" button. No parameters.
Custom command event Triggered when a custom button in the toolbar has an action or name defined. event.params contains button information.

Form

Control Function: A complete form container control that supports title, description, multi-field layout, separation of text and non-text fields, automatic toolbar generation, and configurable submission URL and method. Ideal for full forms in standalone pages or popups.
Type: Container control
Parent Control: bricks.FormBase

Initialization Parameters

Parameter Type Description
title String Optional, form title displayed as large text.
description String Optional, form description shown below the title.
fields Array Required, list of field configurations, same structure as InlineForm.
submit_url String Optional, target URL for form submission; if provided, automatically sends HTTP request.
method String Optional, HTTP method, default is 'POST'.
notoolbar Boolean Optional, default false, whether to hide the default toolbar (submit/reset/cancel).
toolbar Object Optional, extends or replaces default toolbar configuration. Structure: { tools: [...] }.
input_layout String Optional, input layout style, supports "VBox" (vertical) or "HBox" (horizontal), default "VBox".
dataurl String (Reserved) May be used for loading initial data (currently not directly used).

Main Events

Event Name Trigger Condition Callback Parameters
submit(data) Triggered before form submission, after validation passes. Can be used to intercept or preprocess data. data: Data object or FormData being submitted.
submited(resp) Triggered after sending the request to submit_url. resp: Response object, usable for handling response results.
cancel Triggered when the user clicks the "Cancel" button. No parameters.
reset Triggered when the user clicks the "Reset" button. No parameters.
Custom event Triggered when a custom button in the toolbar is clicked and has action or event name defined. event.params contains button metadata.

FormBody

Control Function: The main content area used internally by Form, responsible for rendering all non-text fields (via FieldGroup) and text fields (read-only display). Acts as the container for actual input areas.
Type: Container control
Parent Control: bricks.VScrollPanel

Initialization Parameters

Parameter Type Description
form Object The parent form instance, used to access field definitions, name_inputs, and other states.
opts Object Configuration options; automatically sets width: '100%' and height: '100%'.

Note: This control is typically not created directly by developers, but instantiated internally during Form construction.

Main Events

This control does not dispatch events externally, but as a container inherits scrolling capabilities from VScrollPanel, primarily used for visual presentation.

  • Does not actively trigger business events.
  • Changes in its child controls (e.g., input fields) affect the state of the parent Form.

FieldGroup

Control Function: A helper class used to recursively build field groups within a form (supporting nested group structures), organizing fields into dynamic columns (DynamicColumn) and input containers (VBox/HBox) according to layout rules.
Type: Ordinary control (logical component)
Parent Control: None (base class)

Initialization Parameters

Parameter Type Description
opts Object Currently unused, reserved for future extension.

Note: This class is not a UI control and does not directly render DOM elements—it exists solely as a logical building block.

Main Events

This class has no event mechanism and serves only synchronous method calls:

  • build_fields(form, parent, fields): Core method that recursively generates field UI and mounts it to the specified parent container.

Summary Notes:

  • InlineForm and Form are form controls directly usable by users;
  • FormBody and FieldGroup are internal implementation components, generally not intended for direct use or separate documentation;
  • All form controls share a unified data collection, validation, and submission workflow;
  • Supports file-type fields (file/audio/video), which require FormData for automatic recognition;
  • Toolbar supports highly customizable extensions.