1
0

JavaScriptで色んな入力フォームを作ってみた【初級編④】

Posted at

はじめに

今回は、JavaScriptを活用して色んな入力フォームを制作してみました。実務で使えるよう実装していきます。

年齢入力フォーム

See the Pen 年齢入力フォーム by Uka Suzuki (@uukasuzuki_) on CodePen.

JavaScriptのコード解説

document.getElementById("ageForm").addEventListener("submit", function (event) {
event.preventDefault();
  • ageFormというIDを持つフォームが送信される時にsubmitイベントを監視します。

  • event.preventDefault()で、フォームのデフォルトの送信動作(ページの再読み込みなど)を防ぎます。
const ageInput = document.getElementById("age").value;
const message = document.getElementById("message");
  • ageというIDを持つ入力フィールドから、ユーザーが入力した値(年齢)を取得します。

  • messageというIDを持つ要素に対して、メッセージを表示するためにその要素を取得します。

if (ageInput === "") {
  message.textContent = "年齢を入力してください。";
  message.style.color = "red";
} else if (isNaN(ageInput) || ageInput < 0) {
  message.textContent = "有効な年齢を入力してください。";
  message.style.color = "red";
} else if (ageInput < 18) {
  message.textContent = "18歳未満は参加できません。";
  message.style.color = "red";
} else {
  message.textContent = "参加できます!";
  message.style.color = "green";
}
  • 年齢未入力 (ageInput === "")
    年齢が空白の場合、「年齢を入力してください」という赤いメッセージを表示します。

  • 無効な年齢(数値ではない、または負の数) (isNaN(ageInput) || ageInput < 0)
    数値ではない入力や負の数の場合、「有効な年齢を入力してください」というメッセージが赤で表示されます。

  • 18歳未満 (ageInput < 18)
    年齢が18歳未満の場合、「18歳未満は参加できません」というメッセージが赤で表示されます。

  • 18歳以上
    18歳以上の有効な年齢の場合、「参加できます!」という緑色のメッセージが表示されます。

ユーザー情報の入力フォーム

See the Pen ユーザー情報の入力フォーム by Uka Suzuki (@uukasuzuki_) on CodePen.

JavaScriptのコード解説

// フォームの送信イベントを監視
document.getElementById("userForm").addEventListener("submit", function(event) {
event.preventDefault();
  • userFormというIDを持つフォームが送信される時、submitイベントを監視します。

  • event.preventDefault() はフォームのデフォルトの送信動作(ページのリロードなど)を防ぎ、JavaScriptでカスタム処理を行うために使われます。
// ユーザーの入力を取得
const nameInput = document.getElementById("name").value;
const emailInput = document.getElementById("email").value;
const ageInput = document.getElementById("age").value;
const resultMessage = document.getElementById("resultMessage");
  • nameInput には、nameというIDを持つ入力フィールドから取得した名前が入ります。

  • emailInput には、emailというIDを持つメールアドレス入力フィールドの値が入ります。

  • ageInput は、ageというIDを持つ年齢入力フィールドの値です。

  • resultMessage は、メッセージを表示するためのHTML要素を取得しています。
// 入力の検証
if (nameInput === "" || emailInput === "" || ageInput === "") {
    resultMessage.textContent = "すべてのフィールドに入力してください。";
    resultMessage.style.color = "red";
  • いずれかの入力フィールドが空白の場合、エラーメッセージとして「すべてのフィールドに入力してください」と表示し、メッセージを赤色にします。
} else if (isNaN(ageInput) || ageInput <= 0) {
  resultMessage.textContent = "有効な年齢を入力してください。";
  resultMessage.style.color = "red";
  • ageInput が数値でない (isNaN(ageInput)) または年齢が0以下の場合、年齢が無効と判断し、「有効な年齢を入力してください」というメッセージを赤色で表示します。
// 正常な入力の場合
} else {
    resultMessage.textContent = `名前: ${nameInput}, メール: ${emailInput}, 年齢: ${ageInput} で送信されました。`;
    resultMessage.style.color = "green";
}
  • すべてのフィールドが正しく入力されている場合、ユーザーが入力した内容を表示し、「送信されました」というメッセージを緑色で表示します。

まとめ

今回は、入力フォームについて制作しました。次回は、スクロールアニメーションを制作していきます。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0