Artefact UI

Search

博客

文档

关于

演练场

编辑

菜单Chevron Down

博客

文档

关于

演练场

编辑

Fieldset 字段集 - Docs - Artefact

Fieldset 字段集

Layout
展示型

简介

一个结构化布局容器,将相关表单控件分组到原生 <fieldset> 下,并配有可访问的图例、辅助文本以及验证错误消息。它是复杂用户输入表单不可或缺的语义锚点,会自动将禁用、无效和必填状态向下传播到嵌套的字段控件。

Fieldset 组件已作为 fieldset 区块完全集成到 Page Builder 中,使内容作者和开发者能够直接在 CMS 中轻松构建多输入个人资料区块、地址表单或账单模块。


通过 CMS 页面构建器使用(JSON)

以下示例展示了内容编辑者如何在 JSON 页面模式(content/pages/*.json)中绑定和构建字段集分组。

1. 标准账户信息分组

一个带有必填嵌套名称字段的标准用户资料分组。包含活动的图例和辅助状态文本。

{
  "type": "fieldset",
  "legend": "Account Information",
  "helperText": "Configure your primary account details.",
  "required": true,
  "children": [
    {
      "type": "field",
      "label": "Full Name",
      "placeholder": "Jane Doe",
      "interactive": true
    },
    {
      "type": "field",
      "label": "Email Address",
      "placeholder": "jane@example.com",
      "interactive": true
    }
  ]
}
Account Information

Configure your primary account details.

2. 带错误消息的无效分组

展示当分组要求被违反时,Fieldset 如何显示验证错误消息。输入 errorText 会自动在所有子字段上触发无效状态。

{
  "type": "fieldset",
  "legend": "Billing Credentials",
  "helperText": "Enter your card billing details.",
  "errorText": "A valid postal code is required.",
  "children": [
    {
      "type": "field",
      "label": "Cardholder Name",
      "placeholder": "Jane Doe",
      "interactive": true
    },
    {
      "type": "field",
      "label": "Postal Code",
      "placeholder": "90210",
      "invalid": true,
      "interactive": true
    }
  ]
}
Billing Credentials

Enter your card billing details.

A valid postal code is required.

3. 禁用的账单选项区块

展示一个完全禁用的配送参数区块。停用父级 Fieldset 会自动锁定每个嵌套元素。

{
  "type": "fieldset",
  "legend": "Shipping Address",
  "helperText": "Unavailable during local holidays.",
  "disabled": true,
  "children": [
    {
      "type": "field",
      "label": "Street",
      "placeholder": "123 Main St",
      "interactive": true
    },
    {
      "type": "field",
      "label": "Apt #",
      "placeholder": "4B",
      "interactive": true
    }
  ]
}
Shipping Address

Unavailable during local holidays.


CMS 配置参考

这些字段直接映射到 public/admin/config.yml 下的 Sveltia CMS 区块属性,或 Page Builder 配置:

属性CMS 字段类型默认值描述 / 支持选项
图例文本 (legend)string-字段组的主要视觉与屏幕阅读器标题。
辅助消息 (helperText)string-位于图例正下方的解释性文本。
错误消息 (errorText)string-当分组被标记为无效时显示的视觉验证消息。
必填状态 (required)booleanfalse将分组标记为必填,并在图例上附加一个指示图标。
禁用状态 (disabled)booleanfalse禁用整个区块,锁定所有嵌套输入。
无效状态 (invalid)booleanfalse强制分组显示活动错误边框和警报。
子区块 (children)list-分组在 fieldset 轨道内的嵌套子输入(例如 Field、Textarea)。

开发者说明与无障碍

  • 免水合(仅静态): Fieldset 是一个被指定为仅静态组件(Tier 3)的语义布局组件。它完全以标准服务端 HTML 渲染,并免除客户端水合脚本。
  • 上下文传播: 它利用上下文提供者将 disabledinvalidrequired 状态向下传播。直接的子组件区块(如 FieldTextarea)会自动监听此上下文并继承分组属性,从而省去重复的键声明。
  • WAI-ARIA 合规: Fieldset 严格编译为包含直接 <legend> 元素的语义 HTML <fieldset> 容器,满足可访问的浏览器标题要求。