Demos
Placeholder text
<Input label="Label" placeholder="Placeholder text" />
Search text placeholder
Search inputs show a loupe icon by default. Add showSubmitButton only when an integrated submit button is needed. If you previously relied on type="search" to render a submit button, add showSubmitButton.
<Input label="Search" type="search" placeholder="Search text placeholder" onChange={({ value }) => { console.log('onChange', value) }} onSubmit={({ value }) => { console.log('Submit:', value) }} />
Medium and stretched search input
This example uses showSubmitButton to show the integrated submit button.
<Input size="medium" type="search" stretch={true} showSubmitButton={true} value="Medium search value" onChange={({ value }) => { console.log('onChange', value) }} />
Input with icon
With left / right aligned text
<Input label="Input with icon" placeholder="Input" icon="check" bottom /> <Input label="Input with icon" labelSrOnly placeholder="Input with a placeholder" iconPosition="right" icon="check" align="right" />
Disabled input
<Input disabled label="Disabled input" placeholder="Disabled Input with a placeholder" />
With FormStatus
<Flex.Vertical> <section> <Input label="With FormStatus" status="You have to fill in this field" value="Input value with error" /> </section> <section> <Input label="With button" status="You have to fill in this field" value="Input value with error" type="search" showSubmitButton /> </section> </Flex.Vertical>
Input with suffix and custom label component
<Input label={<Lead>Fødselsnummer</Lead>} autocomplete="on" placeholder="Placeholder text" suffix={ <HelpButton title="Info" size="large"> Some content </HelpButton> } onChange={({ value }) => { console.log('onChange', value) }} />
Stretched Input in horizontal flex and a long label
<FieldBlock label="Long label labwl Adipiscing mauris dis proin nec" forId="input-id" > <Input id="input-id" value="I stretch ..." stretch status="Status message" statusState="warning" /> </FieldBlock>
Numbers are using DNB Mono (monospace)
Also, this example manipulates the value during typing.
<Input label="Label" autocomplete="on" placeholder="Placeholder text" status="Numbers are using DNB Mono (monospace)" statusState="information" value="1234567890" onChange={({ value }) => { console.log('onChange', value) return String(value).toUpperCase() }} />
Submit Form with Input
Pressing the enter key will trigger a submit.
<Form.Handler onSubmit={(event) => { console.log(event) }} > <FormLabel forId="search">Label</FormLabel> <Flex.Horizontal align="baseline"> <Input id="search" type="search" value="Input ..." selectAll={true} onSubmit={(event) => { console.log('Input.onSubmit', event) }} onChange={({ value }) => { console.log('onChange:', value) }} /> <Form.SubmitButton /> </Flex.Horizontal> </Form.Handler>
Input with clear button
Pushing the clear button will clear the input. The last example combines the clear button with an explicit search submit button.
<Flex.Vertical> <Input showClearButton={true} value="Value ..." size="medium" /> <Input showClearButton={true} value="Value ..." type="search" /> <Input showClearButton={true} value="Value ..." type="search" showSubmitButton /> </Flex.Vertical>
Prevent typing of invalid characters
You can check out the Field.String example for more information using onInput event handler property.
Input password type
The password component has to ensure that there is still room for password managers to inject the input with their UX functionality.
Read more about it in Field.Password.