Sveltejs Academy · レッスン

アクションでの検証エラー処理

fail()とActionDataを使用して検証エラーを返し、フォームフィールドを再入力します。

レッスン 4/413 ステップ

「アクションでの検証エラー処理」はCoddyKit上の無料Sveltejs Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSveltejs Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Sveltejs Academyコースには全4レッスンが含まれています。

failヘルパー

fail()を使用すると、throwせずに2xx以外のステータスでバリデーションエラーを返せます。

import { fail } from "@sveltejs/kit";
if (!email) return fail(400, { email, missing: true });

ステータスコード

第1引数はHTTPステータスです(バリデーションでは通常400を指定します)。

エラーペイロード

第2引数はページに返すデータです。入力欄を再表示できるよう、ユーザーの入力値を含めます。

ページでの読み取り

ページはアクションの結果をformプロパティで受け取ります。

<script>
  export let form;
</script>
{#if form?.missing}<p>Please enter an email.</p>{/if}

入力欄の再表示

failを通じて送信された値を返し、入力欄にあらかじめ設定することで、再入力を避けます。

<input name="email" value={form?.email ?? ""} />

フィールド単位のエラー

フィールドごとに個別のエラーキーを使用すると、UIをきめ細かく制御できます。

return fail(400, { errors: { email: "Invalid" } });

スキーマバリデーションとの組み合わせ

サーバー上でZodやValibotなどのライブラリを使用し、型安全にパースします。

バリデーションでthrowしない

throwするとエラーページに移動しますが、failを使えばユーザーをフォームに留められます。

成功時のフォームリセット

成功したら、空の値を返すかリダイレクトしてフォームの状態をクリアします。

use:enhanceとの併用

enhanceのおかげで、リロードせずにformプロパティが更新されます。

アクセシビリティ

aria-liveでエラーを通知し、スクリーンリーダーに読み上げさせます。

クイックチェック

fail()は何を返しますか?

復習

バリデーションエラーにはfail()を使用します。ページはformプロパティからエラーを読み取り、わかりやすいフィードバックを表示します。

無料で開始

AI チューターと学ぶ HTML — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
41
レッスン
163

よくある質問

「アクションでの検証エラー処理」レッスンは無料ですか?

はい。「アクションでの検証エラー処理」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Sveltejs Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Sveltejs Academyコースには全4レッスンが含まれています。

「アクションでの検証エラー処理」で何を学びますか?

fail()とActionDataを使用して検証エラーを返し、フォームフィールドを再入力します。 ブラウザで直接実行するハンズオンコードでSveltejs Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Sveltejs Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのSveltejs Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「アクションでの検証エラー処理」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このSveltejs Academyレッスンでコードを書いて実行できますか?

はい。すべてのSveltejs Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. アクション付きの+page.server.js
  2. use:enhanceディレクティブ
  3. フォームのProgressive Enhancement
  4. アクションでの検証エラー処理
← Sveltejs Academyに戻る