跳到正文

时间选择

时、分(可选秒)三列滚动选择,也可以直接键入。分钟可按步长取整。

带行为 分包 modular/date 1 个事件 2 个方法

示例

在线试用 Markdown 版

代码

<div data-zh-time data-name="at" data-value="09:30" aria-label="提醒时间"></div>
<div data-zh-time data-seconds data-step-minutes="15" data-value="14:15:10" aria-label="精确时间"></div>

<script>
document.querySelector('[data-zh-time]').addEventListener('zh:time-change', function (e) {
  console.log(e.detail.value);   // 09:45
});
</script>

只用核心包(modular/core)时,还要加 modular/date.min.js 和 modular/date.min.css;全量版已包含。见 按需引入。

属性

属性用在取值说明
data-zh-time<div>无声明这是时间选择
data-value容器HH:mm 或 HH:mm:ss初始时间
data-seconds容器布尔属性显示并允许选择秒
data-step-minutes容器整数,默认 1分钟的步长,如 15;键入的分钟会四舍五入到最近的步长
data-name容器字段名生成隐藏 <input name=…> 参与表单提交
data-size容器sm | md(默认)| lg尺寸
aria-label / data-labelledby / data-label容器字符串 / 标签元素 id / 弹层标题输入框的无障碍名称;data-label 是弹出面板的标题
<label for="容器 id">容器所在页面的 <label>for 指向容器的 idlabel 会成为输入框的无障碍名称,点击 label 会聚焦输入框;容器是空 <div>,label 的 for 指向它的 id 即可

事件

事件触发于detail说明
zh:time-change容器{ value: 'HH:mm' | 'HH:mm:ss' | '', time: { h, m, s } | null }选择、键入确认、点「此刻」或清除后触发(冒泡)

方法

  • ZhaoUI.timePicker(host, { value: { h, m, s }, seconds, stepM, size, label, onChange }):命令式创建;value 是 { h, m, s } 对象
  • el.zhTime.get() / .set(value) / .open() / .close():get 返回 { h, m, s } 或 null;set 接受对象或 HH:mm 字符串,不触发事件

样式类

zh-dp zh-tp-panel zh-tp-cols

无障碍

  • 每一列是一个 listbox,↑ ↓ 逐项移动,PageUp / PageDown 一次移动五个步长,Home / End 到首尾,← → 在时分秒列之间切换,Enter 确定
  • 键入不合法(如 25:00)时标记 aria-invalid
  • 面板底部有「此刻」和「确定」按钮

常见问题

时间选择是什么?

时、分(可选秒)三列滚动选择,也可以直接键入。分钟可按步长取整。

怎么使用时间选择?

先在页面里引入 zhaoui.css 和 zhaoui.js(放在 </body> 前,不加 defer),再照本页「用法」里的标记书写;需要用代码控制时,用「方法」里列出的接口。

时间选择有哪些事件?

zh:time-change(选择、键入确认、点「此刻」或清除后触发(冒泡))。

时间选择有哪些方法?

ZhaoUI.timePicker(host, { value: { h, m, s }, seconds, stepM, size, label, onChange }):命令式创建;value 是 { h, m, s } 对象;el.zhTime.get() / .set(value) / .open() / .close():get 返回 { h, m, s } 或 null;set 接受对象或 HH:mm 字符串,不触发事件。

时间选择支持键盘和读屏吗?

每一列是一个 listbox,↑ ↓ 逐项移动,PageUp / PageDown 一次移动五个步长,Home / End 到首尾,← → 在时分秒列之间切换,Enter 确定;键入不合法(如 25:00)时标记 aria-invalid;面板底部有「此刻」和「确定」按钮。

时间选择需要依赖框架吗?

不需要。ZhaoUI 是原生 HTML、CSS 和 JavaScript,不依赖 jQuery、Vue 或 React。