JavaScriptでフォームバリデーション
投稿日:2026/02/10
本記事では、JavaScriptを使って フォームバリデーション(入力チェック) を実装する方法を解説します。
「必須項目が未入力」「メールアドレスの形式が正しくない」などを送信前にチェックすることで、
ユーザー体験の向上とサーバー負荷の軽減につながります。
フォームバリデーションとは?
フォームバリデーションとは、ユーザーが入力した内容が正しいかを検証する処理のことです。
よくあるチェック項目
- 必須入力かどうか
- 文字数が適切か
- メールアドレス形式か
- パスワードの強度
JavaScriptによるバリデーションは、送信前に即座にフィードバックできる点がメリットです。
今回作成するサンプル
以下のようなシンプルなフォームを想定します。
- 名前:必須
- メールアドレス:必須・形式チェック
HTML(フォーム)
<form id="contactForm">
<div>
<label>名前</label><br>
<input type="text" id="name">
<p id="nameError" class="error"></p>
</div>
<div>
<label>メールアドレス</label><br>
<input type="email" id="email">
<p id="emailError" class="error"></p>
</div>
<button type="submit">送信</button>
</form>
CSS(エラー表示用)
.error {
color: red;
font-size: 14px;
}
JavaScript(基本バリデーション)
const form = document.querySelector("#contactForm");
form.addEventListener("submit", (e) => {
e.preventDefault(); // 送信を一旦止める
let isValid = true;
const name = document.querySelector("#name").value.trim();
const email = document.querySelector("#email").value.trim();
// エラーメッセージ初期化
document.querySelector("#nameError").textContent = "";
document.querySelector("#emailError").textContent = "";
// 名前チェック
if (name === "") {
document.querySelector("#nameError").textContent = "名前は必須です";
isValid = false;
}
// メールチェック
if (email === "") {
document.querySelector("#emailError").textContent = "メールアドレスは必須です";
isValid = false;
} else if (!email.includes("@")) {
document.querySelector("#emailError").textContent = "メールアドレスの形式が正しくありません";
isValid = false;
}
if (isValid) {
alert("送信成功(仮)");
// 実際の送信処理を書く
}
});
正規表現を使ったメールチェック
const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
if (!emailPattern.test(email)) {
document.querySelector("#emailError").textContent = "メールアドレスの形式が正しくありません";
isValid = false;
}
入力中にリアルタイムチェックする
const nameInput = document.querySelector("#name");
nameInput.addEventListener("input", () => {
if (nameInput.value.trim() === "") {
document.querySelector("#nameError").textContent = "名前は必須です";
} else {
document.querySelector("#nameError").textContent = "";
}
});
JavaScriptバリデーションの注意点
- 必ずサーバー側でも同じチェックを行う
- JavaScript無効環境では動作しない
- バリデーションロジックの肥大化に注意
👉 JavaScriptはあくまで「ユーザー体験向上用」と考えるのが重要です。
HTMLの標準バリデーションとの併用
<input type="email" required>
HTML5のバリデーションと組み合わせることで、 より安全で実装コストの低いフォームになります。
まとめ
- フォームバリデーションは入力ミス防止の基本
- JavaScriptで柔軟なチェックが可能
- サーバー側バリデーションは必須