English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JavaScript基礎教程

JavaScriptオブジェクト

JavaScript関数

JSHTMLDOM

JSブラウザBOM

AJAX基礎教程

JavaScriptリファレンスマニュアル

JavaScriptのフォーム検証

HTMLフォームの検証はJavaScriptで実行できます。

HTMLフォームは、名前、メールアドレス、場所、年齢などのユーザー情報を収集するために通常使用されます。

しかし、お客様が期待するデータを入力しないユーザーがいる可能性が高いです。

サーバー資源に不必要な負荷を避けるために、クライアント(ユーザーシステム)上でJavaScriptを使用してフォームデータを検証することができます。

入力をWebサーバーに送信する前に、Webブラウザによって実行されますクライアントサイドバリデーション

入力がサーバーに送信された後、サーバーサイドバリデーションWebサーバーによって実行されます。

  <div class="wrapper">
    <h2>アカウントを作成</h2>
    <label for="username"><b>名前</b></label>
    <input type="text" placeholder="ユーザー名を入力" name="uname" id="username" required>
    <label for="useremail"><b>Email</b></label>
    <input type="email" placeholder="Emailを入力" name="uemail" id="useremail" required>
    <label for="userpwd1><b>パスワード</b></label>
    <input type="password" placeholder="パスワードを入力" name="psw" id="userpwd1" required>
    <input type="password" placeholder="パスワードの確認" name="cpsw" id="userpwd2" required>
    <p style="margin-top: 10px;">
       <input type="radio" name="gender" id="female" value="female" checked><label for="female">女性</label>
       <input type="radio" name="gender" id="male" value="male"><label for="male">男性</label>
    </p>
    <button type="submit">登録</button>
  </div>
  <div class="footer">
    <div>既存のアカウントがありますか? <a href="#">ログイン</a></div>
  </div>
</form>
<script>
function validateForm() {
  let name = document.getElementById("username").value;
  let email = document.getElementById("useremail").value;
  let pswd}}1 = document.getElementById("userpwd1").value;
  let pswd}}2 = document.getElementById("userpwd2").value;
  
  if(name == "") {
    alert("Name must be filled out");
    return false;
  }
  if(email == "") {
    alert("メールアドレスを必須にします");
    return false;
  }
  if(pswd1 !== "" || pswd2 !== "") {
    if(pswd1 !== pswd2) {
      alert("Password didn't match");
      return false;      
    }
  } else {
    alert("パスワードは必須です");
    return false;  
  }
  return true;
}
</script>
テストしてみてください:/›

典型的な検証タスクは:

  • ユーザーがすべての必須フィールドを入力しましたか?

  • ユーザーが有効なデータを入力しましたか?

このコードでは、入力フィールド(ユーザー名)が空の場合、この関数は警告メッセージを表示しfalseを返し、フォームの提出を防ぎます:

JavaScriptの例:
  function validateForm() {
  let x = document.getElementById("uname").value;
  if (x == "") {
    alert("名前は必須です");
    return false;
  }
  }

フォームを提出する際にこの関数を呼び出すことができます:

HTMLフォームの例:
<form action="form-action.html" onsubmit="return validateForm()" method="POST">
  <label for="uname">Name:</label>
  <input type="text" name="username" id="uname">
  <input type="submit" value="Submit">
</form>
テストをしてみて‹/›

数字の入力を検証

JavaScriptは通常数字の入力を検証に使用されます。

入力してください1まで10の間の数字:

メールアドレスの入力を検証

JavaScriptは通常メールアドレスの検証に使用されます。

有効なメールアドレスを入力してください:

パスワードの確認を検証

JavaScriptは通常パスワードの確認に使用されます。

自動HTMLフォームの検証

HTMLフォームの検証に使用できます必須属性自動実行:

<input type="text" name="demo" required>
テストをしてみて‹/›

変更する入力タイプ

您可以使用javascript 在<input type="password">和<input type="text">之间进行切换。

パスワードフィールドに値を入力し、「パスワードを表示」ボタンをクリックしてください:

HTML入力バリデーション属性

HTML5以下の新しいHTML属性が導入されました:

属性説明
disabled入力要素を無効にする
max入力要素の最大値を指定
min入力要素の最小値を指定
pattern入力要素の値パターンを指定
required入力フィールドに要素が必要

CSSバリデーションパシオセレクタ

CSS3以下の新しいCSSパシオセレクタが導入されました:

セレクタ説明
:disabled「無効」属性を指定した入力要素を選択
:invalid無効な値を持つ入力要素を選択
:valid有効な値を持つ入力要素を選択
:optional「必須」属性を指定していない入力要素を選択
:required「必須」属性を指定した入力要素を選択

注意:クライアントのバリデーションはサーバーのバリデーションを代わりにすることはできません。ユーザーがフォームデータを確認したとしても、ユーザーはブラウザでJavaScriptを無効にすることができるため、常にサーバー側でフォームデータを確認する必要があります。