Skip to main content

Date field

The date field component captures date input with a consistent interface for date selection and proper validation. Use it to collect date information in forms, scheduling interfaces, or data entry workflows.

The component supports manual text entry. For visual calendar-based selection, consider using date picker.

Support
Targets (29)

Configure the following properties on the date field component.

Anchor to allow
allow
string
Default: ""

Restricts which dates the user can select. Accepts a comma-separated list of dates and date ranges. Whitespace is allowed after commas.

The default '' allows all dates.

  • Dates in YYYY-MM-DD format allow a single date.
  • Dates in YYYY-MM format allow a whole month.
  • Dates in YYYY format allow a whole year.
  • Ranges are expressed as start--end. - Ranges are inclusive.
    • If either start or end is omitted, the range is unbounded in that direction.
    • If parts of the date are omitted for start, they are assumed to be the minimum possible value. So 2024-- is equivalent to 2024-01-01--.
    • If parts of the date are omitted for end, they are assumed to be the maximum possible value. So --2024 is equivalent to --2024-12-31.
    • Whitespace is allowed either side of --.

Comma-separated list of allowed dates in YYYY-MM-DD format.

Anchor to allowDays
allowDays
string
Default: ""

Restricts which days of the week the user can select. Only dates that fall on an allowed day AND pass the allow/disallow filters are selectable. For example, setting allowedDays to 'mon, wed, fri' with allow set to '2024-06' restricts selection to Mondays, Wednesdays, and Fridays in June 2024.

A comma-separated list of days. Whitespace is allowed after commas.

The default '' has no effect on the result of allow and disallow.

Days are sunday, monday, tuesday, wednesday, thursday, friday, saturday.

Anchor to autocomplete
autocomplete
AutocompleteField | `${} ${AutocompleteField}` | `${} ${AutocompleteField}` | `${} ${} ${AutocompleteField}` | "on" | "off"
Default: 'on'

A hint about the intended content of the field for browser autofill.

When set to on (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.

When set to off, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.

Alternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.

Learn more about the set of autocomplete values supported in browsers.

Anchor to defaultValue
defaultValue
string

The initial value of the field when it first loads. Unlike placeholder, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.

Anchor to defaultView
defaultView
string

Default month to display in YYYY-MM format.

This value is used until view is set, either directly or as a result of user interaction.

Defaults to the current month in the user's locale.

Anchor to disabled
disabled
boolean
Default: false

Whether the field is disabled, preventing any user interaction.

Anchor to disallow
disallow
string
Default: ""

Dates that cannot be selected. These subtract from allow.

A comma-separated list of dates, date ranges. Whitespace is allowed after commas.

The default '' has no effect on allow.

  • Dates in YYYY-MM-DD format disallow a single date.
  • Dates in YYYY-MM format disallow a whole month.
  • Dates in YYYY format disallow a whole year.
  • Ranges are expressed as start--end. - Ranges are inclusive.
    • If either start or end is omitted, the range is unbounded in that direction.
    • If parts of the date are omitted for start, they are assumed to be the minimum possible value. So 2024-- is equivalent to 2024-01-01--.
    • If parts of the date are omitted for end, they are assumed to be the maximum possible value. So --2024 is equivalent to --2024-12-31.
    • Whitespace is allowed either side of --.

Comma-separated list of disallowed dates in YYYY-MM-DD format.

Anchor to disallowDays
disallowDays
string
Default: ""

Days of the week that cannot be selected. This subtracts from allowDays, and intersects with the result of allow and disallow.

A comma-separated list of days. Whitespace is allowed after commas.

The default '' has no effect on allowDays.

Days are sunday, monday, tuesday, wednesday, thursday, friday, saturday.

Anchor to error
error
string

An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.

string

A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.

Anchor to label
label
string

The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.

string

The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.

Anchor to readOnly
readOnly
boolean
Default: false

Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.

Anchor to required
required
boolean
Default: false

Whether the field needs a value. This requirement adds semantic value to the field, but it will not cause an error to appear automatically. If you want to present an error when this field is empty, you can do so with the error property.

Anchor to value
value
string

The current value for the field. If omitted, the field will be empty.

string

Displayed month in YYYY-MM format.

onViewChange is called when this value changes.

Defaults to defaultView.

The date field component provides event callbacks for handling user interactions. Learn more about handling events.

<typeof tagName>

A callback fired when the date field loses focus.

Learn more about the blur event.

Anchor to change
change
<typeof tagName>

A callback fired when the date field value changes.

Learn more about the change event.

Anchor to focus
focus
<typeof tagName>

A callback fired when the date field receives focus.

Learn more about the focus event.

Anchor to input
input
<typeof tagName>

A callback fired when the user inputs data into the date field.

Learn more about the input event.

Anchor to invalid
invalid
<typeof tagName>

A callback fired when the date field value is invalid.

Learn more about the invalid event.

Anchor to viewChange
viewChange
<typeof tagName>

A callback fired when the calendar view changes, such as when navigating between months.


Anchor to Collect a pickup dateCollect a pickup date

Display a date input with a pre-filled default for scheduled pickups. This example shows an s-date-field with a label and defaultValue set to a specific date.

Collect a pickup date

A rendered example of the date-field component

html

<s-date-field label="Pickup date" defaultValue="2026-10-01"></s-date-field>

Anchor to Restrict selectable delivery datesRestrict selectable delivery dates

Block a holiday date range and exclude weekends from selection. This example configures an s-date-field with disallow set to December 24-31 and disallowDays excluding Saturdays and Sundays.

html

<s-date-field
label="Delivery date"
disallow="2026-12-24--2026-12-31"
defaultView="2026-12"
disallowDays="saturday,sunday"
></s-date-field>

Anchor to Display a read-only order dateDisplay a read-only order date

Show a confirmed date in a non-editable state for reference. This example displays an s-date-field with the readonly attribute and a pre-filled value.

html

<s-date-field
label="Order date"
defaultValue="2025-10-15"
readonly
></s-date-field>

  • Set meaningful defaults: Use defaultValue to pre-fill the next available date and reduce manual input.
  • Restrict invalid dates: Use disallow and disallowDays to prevent buyers from selecting dates that aren't available for fulfillment.
  • Pair with date picker: For date selection that benefits from calendar context, use date picker alongside or instead of a date field.

Was this page helpful?