跳到內容
+

日期和時間選擇器 - 驗證

為使用者輸入新增自訂驗證。

所有日期和時間選擇器都有用於新增驗證約束的 API。預設情況下,如果元件值不符合驗證標準,它們會提供視覺回饋。

無效值回饋

在欄位上,它會啟用其錯誤狀態。

在日曆和時鐘檢視中,無效值會顯示為停用,以防止選取它們。

123456789101112

過去和未來驗證

所有選擇器都支援過去和未來驗證。

disablePast prop 可防止日期選擇器選取今天之前的所有值,以及時間選擇器選取目前時間之前的所有值。對於日期時間選擇器,它將結合兩者。

  • day 檢視中,今天之前的所有日期都將無法選取。
  • monthyear 檢視中,今天之前結束的所有值都將無法選取。
  • hoursminutes 檢視中,目前時間之前結束的所有值都將無法選取。
  • seconds 檢視中,目前秒數之前的所有值都將無法選取。

DatePicker

TimePicker

DateTimePicker

DateRangePicker

DateTimeRangePicker

disableFuture prop 可防止日期選擇器選取今天之後的所有值,以及時間選擇器選取目前時間之後的所有值。對於日期時間選擇器,它將結合兩者。

  • day 檢視中,今天之後的所有日期都將無法選取。
  • monthyear 檢視中,今天之後開始的所有值都將無法選取。
  • hoursminutes 檢視中,目前時間之後開始的所有值都將無法選取。
  • seconds 檢視中,目前秒數之後的所有值都將無法選取。

DatePicker

TimePicker

DateTimePicker

DateRangePicker

DateTimeRangePicker

日期驗證

以下描述的所有 props 都適用於所有支援日期編輯的元件。

最小和最大日期

minDate prop 可防止選取 props.minDate 之前的所有值。

  • day 檢視中,minDate 之前的所有日期都將無法選取。
  • monthyear 檢視中,minDate 之前結束的所有值都將無法選取。

DatePicker

DateTimePicker

DateRangePicker

DateTimeRangePicker

maxDate prop 可防止選取 props.maxDate 之後的所有值。

  • day 檢視中,maxDate 之後的所有日期都將無法選取。
  • monthyear 檢視中,maxDate 之後開始的所有值都將無法選取。

DatePicker

DateTimePicker

DateRangePicker

DateTimeRangePicker

停用特定日期

shouldDisableDate prop 可防止選取所有使其返回 true 的日期。

在以下範例中,週末無法選取

DatePicker

DateTimePicker

DateRangePicker

DateTimeRangePicker

在範圍元件中停用特定日期

對於支援日期範圍編輯的元件(DateRangePickerDateTimeRangePicker),shouldDisableDate prop 接收第二個參數來區分開始日期和結束日期。

在以下範例中,開始日期不能在週末,但結束日期可以。

DateRangePicker

DateTimeRangePicker

停用特定月份

shouldDisableMonth prop 可防止選取所有使其返回 true 的月份中的日期。

DatePicker

DateTimePicker

停用特定年份

shouldDisableYear prop 可防止選取所有使其返回 true 的年份中的日期。

DatePicker

DateTimePicker

時間驗證

最小和最大時間

minTime prop 可防止選取午夜和 props.minTime 之間的所有值。

TimePicker

DateTimePicker

DateTimeRangePicker

maxTime prop 可防止選取 props.maxTime 和午夜之間的所有值。

TimePicker

DateTimePicker

DateTimeRangePicker

停用特定時間

shouldDisableTime prop 可防止選取所有使其返回 true 的值。

此回呼函式接收目前檢視和要測試的值

// Disables the hours between 12 AM and 3 PM.
shouldDisableTime={(value, view) =>
  view === 'hours' && value.hour() > 12 && value.hour() < 15
}

// Disables the last quarter of each hour.
shouldDisableTime={(value, view) => view === 'minutes' && value.minute() >= 45}

// Disables the second half of each minute.
shouldDisableTime={(value, view) => view === 'seconds' && value.second() > 30}

// Disable the hours before 10 AM every 3rd day
shouldDisableTime={(value, view) =>
  view === 'hours' && value.hour() < 10 && value.date() % 3 === 0
}

在以下範例中,每小時的最後四分之一無法選取。

TimePicker

DateTimePicker

DateTimeRangePicker

日期和時間驗證

最小和最大日期時間

minDateTime prop 可防止選取 props.minDateTime 之前的所有值。

DateTimePicker

DateTimeRangePicker

maxDateTime prop 可防止選取 props.maxDateTime 之後的所有值。

DateTimePicker

DateTimeRangePicker

顯示錯誤

要渲染目前錯誤,您可以訂閱 onError 回呼函式,該函式在每次錯誤變更時都會被呼叫。然後,您可以使用 TextFieldhelperText prop,將您的錯誤訊息傳遞到您的輸入,如下所示。

嘗試輸入 2022 年第一季內的日期 - 錯誤將會消失。

按下 Enter 開始編輯