Input field
The do-everything input field. Its input type decides what it becomes: plain text, number, date, time, multi-line text area or rich text editor. It is therefore the most frequently used block on a form, and the one whose settings are worth reading in full at least once.
What it is
| Type | fieldText |
| Category | form |
| Children allowed | 0 |
| Styling targets | bspk, input, label |
| Events | onChange, onInput |
The settings
Only the settings specific to this block are listed here. The block name, HTML id, anchor, conditional display and repetition are shared by every block and described once, under Shared settings.
Parameters
| Setting | How it is set | What it does | Specifics |
|---|---|---|---|
4D code for the field namevb_Use4dCode | toggle (boolean) | The field name is a 4D expression evaluated at render time: its result becomes the field name sent with the form | default: no |
Field typevl_InputType | select (integer) | — | default: 0 |
Field namevt_FieldName | text (text) | — | required |
Label & texts
| Setting | How it is set | What it does | Specifics |
|---|---|---|---|
4D code for labelvb_Use4dCodeForLabel | toggle (boolean) | — | default: no |
Label positionvl_LabelPosition | checkbox (integer) | — | default: 0 |
Explanatory textvt_ExplanatoryText | text (text) | Shows a « ? » icon next to the field label; this text appears as a tooltip on hover (like this one) | translatable |
Field labelvt_FieldLabel | text (text) | — | translatable |
Indicative textvt_FieldPlaceholder | text (text) | Grayed text displayed INSIDE the field, which disappears as soon as you start typing (HTML placeholder) | translatable |
Input & behavior
| Setting | How it is set | What it does | Specifics |
|---|---|---|---|
Accept empty valuevb_AcceptEmptyValue | toggle (boolean) | — | default: no |
Multilingualvb_MultiLang | toggle (boolean) | — | default: no |
Remove autocompletevb_RemoveAutocomplete | toggle (boolean) | — | default: no |
Resizablevb_Resize | toggle (boolean) | — | default: no |
Rich text editorvb_RichText | toggle (boolean) | Replaces the text area with the dev-panel rich text editor (bold, headings, lists, links…). The content is sent as base64-encoded HTML in the field — decode it in 4D. For a different editor, leave unchecked and set it up via custom.js | default: no |
Show-password togglevb_ToggleShowPassword | toggle (boolean) | — | default: no |
Use 4D for defaultvb_Use4DForDefaultValue | toggle (boolean) | — | default: no |
Is linked to the module entity?vb_isLinkedToModuleEntity | toggle (boolean) | Links the field to the page module entity (record): the value is pre-filled from the entity and sent back with the form to update it. Only works on a module page with a loaded entity | default: no |
Step: Max numbervl_InputNumericMax | number (integer) | — | |
Step: Min numbervl_InputNumericMin | number (integer) | — | |
Increment stepvl_InputNumericStep | number (integer) | — | |
Number of rowsvl_Rows | number (integer) | — | |
Relationship pathvt_HowGetPk | text (text) | Optional 4D expression returning the entity to link (e.g. ds.CLIENT.get(...)). Leave empty = current entity of the module page | |
Default valuevt_Value | text (text) | — | |
Path in objectvt_pathInObject | text (text) | For a field linked to an entity: path of the OBJECT attribute where the value is read/written. The value becomes Entity.path.fieldName (e.g. field name = phone, path = contact → Entity.contact.phone). Leave empty if the field maps directly to an entity attribute |
Validation
| Setting | How it is set | What it does | Specifics |
|---|---|---|---|
Required fieldvb_Required | toggle (boolean) | — | security check, default: no |
Validation (regex)vt_PregMatch | select (text) | — | open list |
Required-if queryvt_QueryRequired | text (text) | 4D expression evaluated at render time: if it returns True, the field becomes required (conditional requirement). E.g.: WebUser.role = « admin ». Leave empty = always required |
The tables on this page are produced automatically from the block's schema. If this page and the panel disagree, the schema is right.

