驗證日期欄位
標籤
假設您有一個出生日期欄位,您不希望人們輸入尚未發生的日期。或者您正在建立一個活動註冊表單,您不希望人們註冊已經過去的日期。或者是一個服務預訂表單,人們需要提前至少 2 天預訂,您不希望當天預訂通過。
這些其實都是同一個問題:您需要控制人們甚至被允許輸入哪些日期,而不僅僅是日期在頁面上輸入後的顯示方式。
日期和日期和時間是文字輸入欄位類型中的兩種。這份指南是關於輸入驗證的——控制接受哪些日期的設置。這與格式化在設置文字輸入屬性中不同,格式化只改變日期的顯示方式(如 YYYY-MM-DD 與 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 設置為結束日期欄位,運算符為<。這讀作開始日期 < 此欄位 < 結束日期。 - 此日期不得等於另一個欄位的日期(例如,後續約會不能與初次約會在同一天):使用
!=排除的欄位。
您不必填寫兩側——如果您只需要單向比較,可以留空一側。
(可選)輸入一個欄位比較錯誤信息,告訴回應者為什麼比較失敗——這與上面日期範圍使用的超出範圍時的錯誤信息是分開的。