Datetime-local
The datetime-local input uses HTML's native datetime-local picker to allow users to easily select a date and time based on their browser’s locale.
Need more flexibility than the native HTML datetime-local input provides? Check out the datepicker input available in FormKit Pro.
Basic example
<FormKit type="datetime-local" value="2020-03-13T18:22" label="End of the world" help="When will the end of the world take place?" validation="required|date_after" validation-visibility="live"/>The internal format of all native datetime-local pickers is YYYY-MM-DDTHH:MM. This is true even though the format of the datetime-local displayed to the user may be different. For example U.S. based browsers display datetime-local format as MM/DD/YYYY, HH:MM AM/PM.
Props & Attributes
The datetime-local input has no unique props but can make use of the following universal FormKit props.
| Prop | Type | Default | Description | ||
|---|---|---|---|---|---|
| Commonly used native attributes | |||||
min | Number | View on MDN | |||
max | Number | View on MDN | |||
step | Number | auto | View on MDN | ||
| Show Universal props | |||||
config | Object | {} | Configuration options to provide to the input’s node and any descendent node of this input. | ||
delay | Number | 20 | Number of milliseconds to debounce an input’s value before the commit hook is dispatched. | ||
dirtyBehavior | string | touched | Determines how the "dirty" flag of this input is set. Can be set to touched or compare — touched (the default) is more performant, but will not detect when the form is once again matching its initial state. | ||
errors | Array | [] | Array of strings to show as error messages on this field. | ||
help | String | '' | Text for help text associated with the input. | ||
id | String | input_{n} | The unique id of the input. Providing an id also allows the input’s node to be globally accessed. | ||
ignore | Boolean | false | Prevents an input from being included in any parent (group, list, form etc). Useful when using inputs for UI instead of actual values. | ||
index | Number | undefined | Allows an input to be inserted at the given index if the parent is a list. If the input’s value is undefined, it inherits the value from that index position. If it has a value it inserts it into the lists’s values at the given index. | ||
label | String | '' | Text for the label element associated with the input. | ||
name | String | input_{n} | The name of the input as identified in the data object. This should be unique within a group of fields. | ||
parent | FormKitNode | contextual | By default the parent is a wrapping group, list or form — but this props allows explicit assignment of the parent node. | ||
prefix-icon | String | '' | Specifies an icon to put in the prefixIcon section. | ||
preserve | Boolean | false | Preserves the value of the input on a parent group, list, or form when the input unmounts. | ||
preserve-errors | Boolean | false | By default errors set on inputs using setErrors are automatically cleared on input, setting this prop to true maintains the error until it is explicitly cleared. | ||
sections-schema | Object | {} | An object of section keys and schema partial values, where each schema partial is applied to the respective section. | ||
suffix-icon | String | '' | Specifies an icon to put in the suffixIcon section. | ||
type | String | text | The type of input to render from the library. | ||
validation | String, Array | [] | The validation rules to be applied to the input. | ||
validation-visibility | String | blur | Determines when to show an input's failing validation rules. Valid values are blur, dirty, and live. | ||
validation-label | String | {label prop} | Determines what label to use in validation error messages, by default it uses the label prop if available, otherwise it uses the name prop. | ||
validation-rules | Object | {} | Additional custom validation rules to make available to the validation prop. | ||
value | Any | undefined | Seeds the initial value of an input and/or its children. Not reactive. Can seed entire groups (forms) and lists.. | ||
Sections
You can target a specific section of an input using that section's "key", allowing you to modify that section's classes, HTML (via :sections-schema, or content (via slots)). Read more about sections here.
Click on a section to lock focus to the chosen section. Click locked section again to unlock.
| Section-key | Description |
|---|---|
outer | The outermost wrapping element. |
wrapper | A wrapper around the label and input. |
label | The label of the input. |
prefix | Has no output by default, but allows content directly before an input element. |
prefixIcon | An element for outputting an icon before the prefix section. |
inner | A wrapper around the actual input element. |
suffix | Has no output by default, but allows content directly after an input element. |
suffixIcon | An element for outputting an icon after the suffix section. |
input | The input element itself. |
help | The element containing help text. |
messages | A wrapper around all the messages. |
message | The element (or many elements) containing a message — most often validation and error messages. |
Accessibility
All FormKit inputs are designed with the following accessibility considerations in mind. Help us continually improve accessibility for all by filing accessibility issues here:
- Semantic markup
- ARIA attributes
- Keyboard accessibility
- Focus indicators
- Color contrast with the provided theme
- Accessible labels, help text, and errors
Accessibility attributes
| Section Key | Attribute | Value | Description |
|---|---|---|---|
label | label | for | Associates a label to an input element. Users can click on the label to focus the input or to toggle between states. |
input | input | disabled | Disables an HTML element, preventing user interaction and signaling a non-interactive state. |
aria-describedby | Associates an element with a description, aiding screen readers. | ||
aria-required | Added when input validation is set to required. | ||
icon | icon | for | Links icon to input element when icon in rendered as a label. |
Keyboard Interactions
| Keyboard Event | Description |
|---|---|
| Enter | Opens the browser datetime picker panel when input is focused. Confirms datetime selection when date picker is focused. |
| Space | Opens the browser datetime picker panel when input is focused. |
| Esc | Closes the browser datetime picker panel. |
| ↑↓←→ | Adjusts selection of UI elements in browser datetime picker panel. |
| Universal Keyboard Events | |
| Tab | Moves the focus to the next focusable element on the page. |
| Shift+Tab | Moves the focus to the previous focusable element on the page. |