验证日期字段
标签页
假设您有一个出生日期字段,您不希望人们输入一个尚未发生的日期。或者您正在构建一个活动注册表单,您不希望人们注册一个已经过去的日期。或者是一个服务预订表单,要求人们至少提前 2 天预订——您不希望当天的预订混入。
这些实际上都是同一个问题:您需要控制人们甚至被允许输入哪些日期——而不仅仅是输入后日期在页面上的显示方式。
日期和日期时间是文本输入字段类型中的两种。本指南涉及输入验证——控制哪些日期被接受的设置。这与设置文本输入属性中的格式化不同,格式化只改变日期的显示方式(如 YYYY-MM-DD vs MM/DD/YYYY)——并不能阻止任何人输入错误的日期。
下面的验证选项(日期范围、时间范围、跨字段条件)适用于日期和日期时间字段。其他字段类型有其自己的输入验证选项。
使用预设快速设置
如果您的场景是以下常见场景之一,请在输入验证下点击一个预设,PlatoForms 会为您填写接受的日期范围:
| 场景 | 使用的预设 | 设置内容 |
|---|---|---|
| 无限制——任何日期都可以 | 任何日期 | 开始:无限制 · 结束:无限制 |
| 已发生事件的记录(例如,事件日期) | 仅限过去 | 开始:无限制 · 结束:相对——开放日期前 0 天 |
| 尚未发生的事件(例如,活动或预约日期) | 仅限未来 | 开始:相对——开放日期后 0 天 · 结束:无限制 |
| 出生日期字段 | 出生日期 | 开始:相对——开放日期前 100 年 · 结束:相对——开放日期前 0 天 |
选择了一个预设但需要稍作调整?您仍然可以手动微调开始和结束字段——请参见下文。
构建自定义范围
对于预设未涵盖的情况,您可以自行设置接受的日期范围下的开始和/或结束。每一侧有三种模式:
-
无限制: 该范围的这一端没有限制。当仅一侧的范围重要时使用(例如,仅有最小日期,没有最大日期)。
-
固定日期: 输入一个特定的日历日期。用于与不变的现实世界日期相关的范围——例如,“申请不能在 2026 年 6 月 1 日比赛开放之前提交”。
-
相对: 设置一个相对于受访者打开表单当天的限制——当范围应始终随“今天”变化而不是您必须手动更新的日期时很有用。输入一个数字,选择一个单位(
天、月或年),并选择开放日期之前或开放日期之后。例如,需要至少提前 2 天通知的服务预订将开始设置为相对——开放日期后
2天。
(可选)输入一个自定义的超出范围时的错误消息,以告知受访者他们的日期为何被拒绝(例如,“请选择至少 2 天后的日期。”)。
限制一天中的时间
如果您的日期和时间字段仅在特定时间段内有意义——例如,一个服务预订表单,预约只能在上午 9:00 到下午 6:00 之间安排——在输入验证下设置一个时间范围,与上面的日期范围分开。
输入一个最小和/或最大时间(如果仅一侧重要,可以留空)。这与日期范围一起工作,而不是代替它——因此您可以同时要求预约在未来并且在营业时间内。
与另一个字段比较
某些日期仅在与同一表单上的另一个字段相关时才有意义——经典示例是预订或行程表单,其中结束日期必须在开始日期之后。
在跨字段条件下,您正在设置一个形状规则:
[字段 A] — 运算符 — 此字段的值 — 运算符 — [字段 B]
在每一侧选择一个字段——字段按 ID 和标签列出(例如,#2 联系参考,#9 客户名称)——并选择每一侧应如何与此字段相关:<,<=,=,或 !=。
一些常见模式:
- 结束日期必须在开始日期之后: 在结束日期字段上,将字段 A 设置为
#3 开始日期,运算符<,如果您只关心一侧,可以将右侧留空。 - 日期必须严格在两个其他日期之间(例如,检查日期必须在租赁的开始和结束之间):将字段 A 设置为开始日期字段,运算符
<,将字段 B 设置为结束日期字段,运算符<。这读作开始日期 < 此字段 < 结束日期。 - 此日期不得等于另一个字段的日期(例如,跟进预约不能与初次预约同一天):使用
!=排除的字段。
您不必填写两侧——如果只需要单向比较,可以留空一侧。
(可选)输入一个字段比较错误消息,以告知受访者比较失败的原因——这与上面用于日期范围的超出范围时的错误消息是分开的。