Form
用于统一管理多个字段的验证、提交与重置。
预览
保存与重置个人资料
验证必填姓名并存入本地状态,再将编辑恢复至最后保存的值,不发送服务器请求。
正在加载预览。
安装
首次使用此 Registry?请先完成 基础配置与共享样式安装 。
npx shadcn@latest add @neumorphism-ui/form先安装一次共享 base,然后使用 CLI 添加组件及其依赖。
保存与重置个人资料
npx shadcn@latest add @neumorphism-ui/button @neumorphism-ui/field @neumorphism-ui/form用法
组合命名的 Field,以及明确 type 的提交和重置按钮。用 onFormSubmit 处理通过验证的提交,并定义如何恢复受控值。
"use client";
import { useState } from "react";
import { Button } from "@/components/ui/button";
import { Field, FieldControl, FieldError, FieldLabel } from "@/components/ui/field";
import { Form } from "@/components/ui/form";
export default function Example() {
const [saved, setSaved] = useState(false);
return (
<Form onFormSubmit={() => setSaved(true)} onChange={() => setSaved(false)}>
<Field name="displayName">
<FieldLabel>Display name</FieldLabel>
<FieldControl required />
<FieldError match="valueMissing">Enter a name.</FieldError>
</Field>
<Button type="submit" variant="primary">Save profile</Button>
<p role="status">{saved ? "Profile saved locally." : ""}</p>
</Form>
);
}API 参考
协调字段验证和提交错误的原生表单。 区分保存与重置。示例只更新本地状态,不包含服务器持久化。
| 组件 | 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|---|
Form | onFormSubmit | (values, eventDetails) => void | — | 接收验证后的值,并阻止原生提交。 |
Form | errors | Record<string, string | string[]> | — | 按字段名称关联外部错误。 |
Form | validationMode | "onSubmit" | "onBlur" | "onChange" | — | 选择执行验证的时机。 |
无障碍
- 01
区分保存与重置。示例只更新本地状态,不包含服务器持久化。
- 02
修改 render 或 className 时保留标签关联和可见焦点。