Special inputs
As listed in our features, the library supports all native HTML form fields. This includes the HTML <select />
element as well as special cases of the <input />
element.
In our playground you can take a look at such fields and test them out.
Checkbox
A simple checkbox represents a boolean and is true
when checked or false
otherwise.
<Field name="cookies" type="boolean"> {(field, props) => ( <label> <input {...props} type="checkbox" checked={field.value} /> Yes, I want cookies </label> )} </Field>
However, you can also use multiple checkboxes to represent an array of strings. For this you simply have to add the value
attribute to the HTML <input />
element.
{ [ { label: 'Bananas', value: 'bananas' }, { label: 'Apples', value: 'apples' }, { label: 'Grapes', value: 'grapes' }, ].map(({ label, value }) => ( <Field key={value} name="fruits" type="string[]"> {(field, props) => ( <label> <input {...props} type="checkbox" value={value} checked={field.value?.includes(value)} /> {label} </label> )} </Field> )); }
Select
An HTML <select />
element allows you to select a string from a predefined list of options.
<Field name="framework"> {(field, props) => ( <select {...props}> {[ { label: 'Preact', value: 'preact' }, { label: 'Solid', value: 'solid' }, { label: 'Qwik', value: 'qwik' }, ].map(({ label, value }) => ( <option key={value} value={value} selected={field.value === value}> {label} </option> ))} </select> )} </Field>
However, if you set the multiple
attribute, multiple options can be selected making the field represent an array of strings.
<Field name="framework" type="string[]"> {(field, props) => ( // Set "multiple" to "true" <select {...props} multiple> {[ { label: 'Preact', value: 'preact' }, { label: 'Solid', value: 'solid' }, { label: 'Qwik', value: 'qwik' }, ].map(({ label, value }) => ( <option key={value} value={value} selected={field.value?.includes(value)} > {label} </option> ))} </select> )} </Field>
File
For the HTML <input type="file" />
element it works similar to the HTML <select />
element. Without the multiple
attribute it represents a single file and with, a list of files.