nextui/apps/docs/content/components/input/custom-validation.raw.jsx
Peterl561 00fc0a0f85
docs(input): form validation examples (#4368)
* docs(forms): minor typos

* docs(input): form validation examples
2024-12-17 11:14:14 -03:00

41 lines
1.0 KiB
JavaScript

import {Button, Form, Input} from "@nextui-org/react";
export default function App() {
const [submitted, setSubmitted] = React.useState(null);
const onSubmit = (e) => {
e.preventDefault();
const data = Object.fromEntries(new FormData(e.currentTarget));
setSubmitted(data);
};
return (
<Form className="w-full max-w-xs" validationBehavior="native" onSubmit={onSubmit}>
<Input
isRequired
label="Username"
labelPlacement="outside"
name="username"
placeholder="Enter your username"
type="text"
validate={(value) => {
if (value.length < 3) {
return "Username must be at least 3 characters long";
}
return value === "admin" ? "Nice try!" : null;
}}
/>
<Button color="primary" type="submit">
Submit
</Button>
{submitted && (
<div className="text-small text-default-500">
You submitted: <code>{JSON.stringify(submitted)}</code>
</div>
)}
</Form>
);
}