読み込み中...

HTMLバリデーション入門!3つのステップで完璧なフォームを作成

HTMLバリデーションの基本的な使い方やカスタマイズ方法を学ぶ HTML
この記事は約6分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読めばHTMLバリデーションの完璧なフォーム作成ができるようになります。

HTMLバリデーションは、ウェブフォームに入力されたデータが正しい形式に従っているかをチェックするための仕組みです(バリデーション=検証)。

これにより、ユーザーが誤った情報を入力することを防ぎ、データの品質を向上させることができます。

○HTMLバリデーションとは?

HTMLバリデーションは、フォームに入力されたデータが正しい形式に従っているかを確認するプロセスです。

これにより、ユーザーが誤った情報を入力することを防ぎ、データの品質を向上させることができます。

HTML5では、様々なバリデーションが簡単に実装できるようになっています。

○バリデーションの作成方法

HTMLバリデーションを実装するには、下記の3つのステップに従ってください。

●ステップ1:フォーム要素を用意する

まずは、バリデーションを適用するフォーム要素(inputやselectなど)を用意します。

例えば、メールアドレスを入力するフォームを作成する場合、下記のようなコードを書きます。

<form>
  <label for="email">メールアドレス:</label>
  <input type="email" id="email" name="email" required>
  <button type="submit">送信</button>
</form>

●ステップ2:入力チェックのルールを設定する

次に、入力チェックのルールを設定します。

HTML5では、様々なバリデーションルールが用意されており、属性を追加するだけで簡単に適用できます。

上記のメールアドレスの例では、type="email"required属性がバリデーションルールとして設定されています。

●ステップ3:エラーメッセージを表示する

最後に、バリデーションが失敗した際にエラーメッセージを表示します。

これには、JavaScriptを使用してエラー情報を取得し、表示する方法が一般的です。

document.querySelector("form").addEventListener("submit", function(event) {
  var emailInput = document.getElementById("email");
  if (!emailInput.validity.valid) {
    event.preventDefault();
    var errorMessage = emailInput.validationMessage;
    alert(errorMessage);
  }
});

このコードは、フォームが送信される際にバリデーションチェックを行い、失敗した場合はエラーメッセージをアラートとして表示します。

○注意点と対処法

HTMLバリデーションを使用する際の注意点として、下記の2つが挙げられます。

●入力値のサニタイズ

バリデーションを行う際には、入力値のサニタイズ(悪意あるコードの除去)も行うことが重要です。

これにより、セキュリティリスクを軽減することができます。

サーバーサイドでのサニタイズ処理を忘れずに行ってください。

●ブラウザ間の互換性

HTMLバリデーションは、ブラウザによってサポート状況が異なる場合があります。

そのため、バリデーションが正しく動作するかどうか、複数のブラウザでテストを行うことが重要です。

また、JavaScriptを使用してブラウザの互換性問題を解決する場合もあります。

○カスタマイズ方法

HTMLバリデーションは、カスタマイズが容易で、独自のバリデーションルールやエラーメッセージを設定することができます。

●カスタムバリデーションルールの作成

独自のバリデーションルールを作成するには、pattern属性を使用します。

例えば、郵便番号の入力フォームに対して、7桁の数字のみを受け付けるバリデーションを設定する場合は、下記のようなコードを書きます。

<form>
  <label for="postalcode">郵便番号:</label>
  <input type="text" id="postalcode" name="postalcode" pattern="\d{7}" required>
  <button type="submit">送信</button>
</form>

●エラーメッセージのカスタマイズ

エラーメッセージは、title属性とoninvalidイベントを使用してカスタマイズすることができます。

下記の例では、郵便番号の入力が不正な場合にカスタムエラーメッセージを表示します。

<form>
  <label for="postalcode">郵便番号:</label>
  <input type="text" id="postalcode" name="postalcode" pattern="\d{7}" title="7桁の数字を入力してください" oninvalid="setCustomValidity('7桁の数字を入力してください')" required>
  <button type="submit">送信</button>
</form>

○応用例とサンプルコード

HTMLバリデーションは、様々なシーンで応用することができます。

下記に2つの応用例とサンプルコードを紹介します。

●応用例1:電話番号のバリデーション

電話番号のバリデーションを設定するには、pattern属性を使用して、適切な正規表現を設定します。

下記の例では、ハイフンを含む10桁または11桁の電話番号を受け付けるバリデーションを設定しています。

<form>
  <label for="phone">電話番号:</label>
  <input type="tel" id="phone" name="phone" pattern="\d{2,4}-\d{2,4}-\d{4}" required>
<button type="submit">送信</button>
</form>

● 応用例2:パスワード強度のバリデーション

パスワードの強度をチェックするバリデーションを設定するには、pattern属性を使用して、適切な正規表現を設定します。

下記の例では、8文字以上で大文字、小文字、数字をそれぞれ最低1つ含むパスワードを受け付けるバリデーションを設定しています。

<form>
  <label for="password">パスワード:</label>
  <input type="password" id="password" name="password" pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}" required>
  <button type="submit">送信</button>
</form>

まとめ

この記事を読めば、HTMLバリデーションの作成方法、使い方、注意点、カスタマイズ方法について理解できるようになります。

これらの知識を活用して、ユーザーフレンドリーでセキュアなフォームを作成しましょう。