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 を変更する際もラベルと可視フォーカスを保ちます。