diff --git a/src/content/docs/ja/recipes/build-forms.mdx b/src/content/docs/ja/recipes/build-forms.mdx new file mode 100644 index 0000000000000..1e86ff05acea3 --- /dev/null +++ b/src/content/docs/ja/recipes/build-forms.mdx @@ -0,0 +1,218 @@ +--- +title: AstroページでHTMLフォームを構築する +description: フロントマターで送信を処理しながら、HTMLフォームを構築する方法を学びます。 +i18nReady: true +type: recipe +--- +import { Steps } from '@astrojs/starlight/components'; + +オンデマンドでレンダリングされるAstroページは、フォームの表示と処理の両方に対応できます。このレシピでは、標準的なHTMLフォームでデータをサーバーへ送信します。フロントマターのスクリプトでサーバー側の処理を行い、クライアントへはJavaScriptを送信しません。 + +:::tip[Astro Actionsでフォームを構築する] +Astro v4.15ではActionsが追加され、基本的なHTMLフォームよりも、データ検証や送信結果に基づくUI更新などの利点が得られます。こちらの方法を使いたい場合は、[Actionsガイド](/ja/guides/actions/)をご覧ください。 +::: + +## 前提条件 +- [サーバーアダプター](/ja/guides/on-demand-rendering/#サーバーアダプター)をインストールしたAstroプロジェクト。 + +## レシピ + + +1. フォーム本体とハンドリングコードを含む`.astro`ページを作成(または特定)します。たとえば、登録ページを追加します。 + + + ```astro title="src/pages/register.astro" + --- + --- +

Register

+ ``` + +2. ページに`
`タグと各種入力フィールドを追加します。各入力には、その値の意味を表す`name`属性を付けます。 + + + 必ず送信用の` +
+ ``` + +3. [バリデーション属性](https://developer.mozilla.org/en-US/docs/Learn/Forms/Form_validation#using_built-in_form_validation)を使い、JavaScriptが無効でも動作する基本的なクライアントサイド検証を追加します。 + + + この例では、 + - `required`は、入力が埋まるまで送信を防ぎます。 + - `minlength`は、入力文字数の下限を設定します。 + - `type="email"`は、有効なメール形式のみを受け付ける検証を導入します。 + + ```astro title="src/pages/register.astro" + --- + --- +

Register

+
+ + + + +
+ ``` + + :::tip + 複数フィールドを参照する独自の検証は、`