Artefact UI

Search

博客

文档

关于

演练场

编辑

菜单Chevron Down

博客

文档

关于

演练场

编辑

DatePicker 日期选择器 - Docs - Artefact

DatePicker 日期选择器

Forms
智能自动检测

简介

一个交互式表单控件,将文本输入框与弹出式日历叠加层相结合。它支持单日期选择器、日期范围选择、多选切换、自定义日历边界、本地化星期标题以及键盘导航。

DatePicker 已作为 datePicker 区块完整集成到 Page Builder 中,使内容管理者和开发者能够直接在 Sveltia CMS 页面模板内定义文本标签、占位符格式、选择模式以及强调配色主题。


用法

以下配置示例精确展示了页面构建器区块条目是如何被构建的。

1. 单日期选择器(非受控 / 标准)

我们标准的日期选择器布局,允许用户从日历下拉框中选择一个特定的日期。适用于表单、注册或预约排期。

{
  "type": "datePicker",
  "label": "Choose Date",
  "selectionMode": "single",
  "placeholder": "YYYY-MM-DD",
  "colorPalette": "blue",
  "interactive": true
}

2. 行程范围选择器(有界日历)

将可选日历限制在特定的日期之间。非常适合机票选择、酒店预订或财务结算窗口。将 selectionMode 设置为 "range" 会渲染起始和结束两个输入框。

{
  "type": "datePicker",
  "label": "Travel Dates",
  "selectionMode": "range",
  "min": "2026-01-01",
  "max": "2026-12-31",
  "colorPalette": "purple",
  "interactive": true
}

属性

属性CMS 字段类型默认值说明 / 可选项
标签文本 (label)string-渲染在文本输入框相邻位置的表单描述性标签文本。
占位符 (placeholder)string"YYYY-MM-DD"当文本输入框为空时显示在其内部的引导格式文本。
选择模式 (selectionMode)select"single"定义日期的收集方式。
"single" —— 解析单个日期。
"range" —— 解析一个跨度的区块(创建双输入框)。
"multiple" —— 切换多个独立的日期。
最小日期 (min)string-YYYY-MM-DD ISO 格式表示的最早可选日期。之前的单元格被禁用。
最大日期 (max)string-YYYY-MM-DD ISO 格式表示的最晚可选日期。
显示周数 (showWeekNumbers)booleanfalse为 true 时,在日期网格左边缘渲染一个 ISO-8601 周数列。
配色主题 (colorPalette)select"blue"应用于选中日、今日高亮和激活边界的视觉主题。
• 选项:bluegreenredpurpleorangeambercyanslate
启用水合 (interactive)booleantrue为 true 时,将组件作为岛屿进行水合,以处理日历弹出层与外部点击。

键盘与无障碍支持

当日历面板叠加层打开且焦点定位到其内部时,用户可以通过标准键盘按键完整操作选择:

  • / —— 将焦点移动到上一天或下一天的单元格。
  • / —— 垂直按 ±1 周(7 天)移动焦点。
  • PageUp / PageDown —— 将日历视图前进或后退一个完整的月份。
  • Shift+PageUp / Shift+PageDown —— 前进或后退一整年。
  • Enter / Space —— 选中当前聚焦的日期单元格并提交。
  • Esc —— 立即关闭弹出叠加层并将焦点返回到触发器输入框。

在底层,日期网格利用漫游 tabIndex 焦点停靠,以防止在每一个日历日期之间切换 Tab 焦点。所有单元格网格都会播报正确的语义化屏幕阅读器描述(role="grid"aria-multiselectablearia-current="date")。