--- title: DateField description: Allow users to select a specific date with a date picker. api_name: app-home source_url: html: 'https://shopify.dev/docs/api/app-home/polaris-web-components/forms/datefield' md: >- https://shopify.dev/docs/api/app-home/polaris-web-components/forms/datefield.md --- # Date​Field Allow users to select a specific date with a date picker. ## Properties * allow string Default: "" Dates that can be selected. A comma-separated list of dates, 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 `--`. * allowDays string Default: "" Days of the week that can be selected. These intersect with the result of `allow` and `disallow`. 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`. * autocomplete DateAutocompleteField Default: 'on' for everything else A hint as to the intended content of the field. 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. * defaultValue string The default value for the field. * 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. * details string Additional text to provide context or guidance for the field. This text is displayed along with the field and its label to offer more information or instructions to the user. This will also be exposed to screen reader users. * disabled boolean Default: false Disables the field, disallowing any interaction. * 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 `--`. * 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`. * error string Indicate an error to the user. The field will be given a specific stylistic treatment to communicate problems that have to be resolved immediately. * id string A unique identifier for the element. * label string Content to use as the field label. * labelAccessibilityVisibility "visible" | "exclusive" Default: 'visible' Changes the visibility of the component's label. * `visible`: the label is visible to all users. * `exclusive`: the label is visually hidden but remains in the accessibility tree. * name string An identifier for the field that is unique within the nearest containing form. * placeholder string A short hint that describes the expected value of the field. * readOnly boolean Default: false The field cannot be edited by the user. It is focusable will be announced by screen readers. * 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. * value string The current value for the field. If omitted, the field will be empty. * view string Displayed month in `YYYY-MM` format. `onViewChange` is called when this value changes. Defaults to `defaultView`. ### DateAutocompleteField ```ts 'bday-day' | 'bday-month' | 'bday-year' | 'bday' | 'cc-expiry-month' | 'cc-expiry-year' | 'cc-expiry' ``` ## Events Learn more about [registering events](https://shopify.dev/docs/api/app-home/using-polaris-components#event-handling). * blur CallbackEventListener<'input'> * change CallbackEventListener<'input'> * focus CallbackEventListener<'input'> * input CallbackEventListener<'input'> * invalid CallbackEventListener\ | null * viewchange CallbackEventListener\ | null ### CallbackEventListener ```ts (EventListener & { (event: CallbackEvent): void; }) | null ``` ### CallbackEvent ```ts Event & { currentTarget: HTMLElementTagNameMap[T]; } ``` ### Examples * #### Code ##### jsx ```jsx ``` ##### html ```html ``` ## Examples Component examples ### Basic usage Basic usage Simple date field for collecting a single date with a descriptive label. With default value Date field pre-populated with a specific date for editing existing data. With date restrictions Shows how to restrict selectable dates to weekdays only. With specific allowed dates Demonstrates allowing only specific dates from a predefined list. With error state Date field showing validation error for required field or invalid date entry. Disabled and read-only states Shows date fields in different interaction states for viewing-only or disabled forms. Form integration Complete form example showing date field with other form elements. Date range selection Example showing two date fields for selecting a date range. Date fields with validation Demonstrates date fields with business logic restrictions and validation. ### Examples * #### Basic usage ##### Description Simple date field for collecting a single date with a descriptive label. ##### jsx ```jsx ``` ##### html ```html ``` * #### With default value ##### Description Date field pre-populated with a specific date for editing existing data. ##### jsx ```jsx ``` ##### html ```html ``` * #### With date restrictions ##### Description Shows how to restrict selectable dates to weekdays only. ##### jsx ```jsx ``` ##### html ```html ``` * #### With specific allowed dates ##### Description Demonstrates allowing only specific dates from a predefined list. ##### jsx ```jsx ``` ##### html ```html ``` * #### With error state ##### Description Date field showing validation error for required field or invalid date entry. ##### jsx ```jsx ``` ##### html ```html ``` * #### Disabled and read-only states ##### Description Shows date fields in different interaction states for viewing-only or disabled forms. ##### jsx ```jsx ``` ##### html ```html ``` * #### Form integration ##### Description Complete form example showing date field with other form elements. ##### jsx ```jsx
Process order
``` ##### html ```html
Process order
``` * #### Date range selection ##### Description Example showing two date fields for selecting a date range. ##### jsx ```jsx Sales report period Generate report ``` ##### html ```html Sales report period Generate report ``` * #### Date fields with validation ##### Description Demonstrates date fields with business logic restrictions and validation. ##### jsx ```jsx Promotion settings ``` ##### html ```html Promotion settings ``` ### Form validation Date field validation Interactive example showing required date field validation with dynamic error messages. ### Examples * #### Date field validation ##### Description Interactive example showing required date field validation with dynamic error messages. ##### jsx ```jsx const [date, setDate] = useState(''); const [error, setError] = useState('Event date is required'); return ( { setDate(e.currentTarget.value); setError(e.currentTarget.value ? '' : 'Event date is required'); }} /> ) ``` ##### html ```html ```