JavaScript フォーム検証の例

JavaScript フォーム検証の例

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

しかし、ユーザーによっては期待したデータを入力しない可能性もあります。 HTML フォームの検証は JavaScript 経由で実行できます。

サーバー リソースへの不要な負荷を回避するために、JavaScript を使用してクライアント (ユーザー システム) でフォーム データを検証できます。誤った情報はバックエンド サーバーに送信されません。これをクライアント側検証と呼びます。この記事ではこの検証を紹介します

フォームの検証は一般的に 2 つの方法に分けられます。

クライアント側の検証:クライアント上で直接 JS を実行して検証を実行します。検証プロセス中にサーバーとのやり取りは行われません。

サーバー側の検証:ページは検証情報をサーバーに送り返し、サーバーは検証を実行して検証結果をクライアントに送り返します。

両方の検証が必要なのは、クライアント側の検証セキュリティがそれほど高くないからですが、ユーザーの誤操作を 80% 以上防止でき、サーバーへの負荷を軽減し、非常に高速で、高いユーザー エクスペリエンスを提供できます。クライアント側の検証があればサーバー側の検証は必要ないと考えないでください。クライアント側の検証は簡単にバイパスできます。サーバー側の検証の方が安全であるため、通常は両方の検証を記述する必要があります。 】

例1: 簡単な例

<!DOCTYPE html>
<html>
<ヘッド>
<メタ文字セット="utf-8">
<title>簡単なフォーム検証の例</title>
</head>
<ヘッド>
<スクリプト>
関数validateForm(){
var x = document.forms["myForm"]["fname"].value;
(x==null || x=="")の場合{
  //alert("名前を入力する必要があります");
  usernameerror.innerHTML="<font color='red'>名前は必須です</font>";
  false を返します。
  }
それ以外{
  ユーザー名error.innerHTML="正しい";
  true を返します。
  }  
 
}
</スクリプト>
</head>
<本文>
<!-- 
<form name="myForm" action="demo-form.php" onsubmit="return validateForm()" method="post">
-->
<form name="myForm" onsubmit="return validateForm()" >
名前: <input type="text" name="fname" id="username">
<span id="ユーザー名エラー"></span>
<br>
<input type="submit" value="送信">
<input type="reset" value="リセット">
</フォーム>
 
</本文>
</html>

ファイル名: フォーム検証例1.html を保存します。

ブラウザでテストを実行すると、結果は次のようになります。

例2: より複雑な例

<!DOCTYPE html>
<html>
<ヘッド>
  <メタ文字セット="UTF-8">
  <title>フォーム検証の例: ユーザー登録</title>
  
  <スタイル タイプ="text/css">
  </スタイル>
 
  <スクリプト>
    関数 checkusername()
    {
      var myform = document.getElementById("form1");
      var ユーザー名 = myform.username.value.length;
      if(ユーザー名 < 1||ユーザー名>12)
      {
        errusername.innerHTML = "<font color='red'>ユーザー名が要件を満たしていません</font>";
        false を返します。
      }それ以外{
        errusername.innerHTML = "<font color='green'>ユーザー名は要件を満たしています</font>";
        true を返します。
      }
    }
    関数チェック()
    {
      var myform = document.getElementById("form1");
      var age = myform.age.value;
      年齢がparseInt(年齢)と等しい場合
      {
        errage.innerHTML = "<font color='red'>年齢が要件を満たしていません</font>";
        false を返します。
      }それ以外{
        errage.innerHTML = "<font color='green'>年齢は要件を満たしています</font>";
        true を返します。
      }
    }
    関数 checkemail()
    {
      var myform = document.getElementById("form1");
      var mail=/^[A-Za-z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
      if(!mail.test(myform.email.value))
      {  
        erremail.innerHTML = "<font color='red'>電子メールが要件を満たしていません</font>";
        false を返します。
      }それ以外{
        erremail.innerHTML = "<font color='green'>電子メールは要件を満たしています</font>";
        true を返します。
      }
    }
    関数 checkform()
    {
      checkusername();checkage();checkemail();
      if(checkusername()&&checkage()&&checkemail())
      {
        true を返します。  
      }それ以外{
        false を返します。
      }
    }
  </スクリプト>
</head>
 
<本文>
<!--
 <form id="form1" name="form1" method="post" action="ttt.jsp" onsubmit="return checkform()">
-->
 
 <form id="form1" name="form1" method="post" onsubmit="return checkform()">
<テーブルの幅="777" 境界線="0" セルパディング="1" セル間隔="1">
 <tr>
  <td colspan="3" ><div align="center">登録情報を入力してください</div></td>
 </tr>
 <tr>
  <td width="250" ><div align="right" >ユーザー名を入力してください: </div></td>
  <td width="250"><div align="center">
     <input type="text" name="ユーザー名" onblur="checkusername()" />  
   </div></td>
  <td><div id="errusername" align="center"></div></td>
 </tr>
 <tr>
  <td width="250"><div align="right">年齢を入力してください:</div></td>
  <td width="250"><div align="center" >
   <ラベル>
   <input type="text" name="age" onblur="checkage()"/>
   </ラベル>
  </div></td>
   <td><div align="center" id="errage"></div></td>
 </tr>
 <tr>
  <td width="250"><div align="right" >メールアドレスを入力してください:</div></td>
  <td width="250"><div align="center" >
   <ラベル>
   <input type="text" name="email" onblur="checkemail()" />
   </ラベル>
  </div></td>
   <td><div align="center" id="erremail"></div></td>
 </tr>
 <tr>
  <td><div align="right">
   <ラベル>
   <input type="submit" name="送信" value="送信" />
   </ラベル>
  </div></td>
   <td><div align="center">
    <ラベル>
    <input type="reset" name="送信2" value="リセット" />
    </ラベル>
   </div></td>
  <td><div align="center"></div></td>
 </tr>
</テーブル>
 
</フォーム>
 
</本文>
</html>

ファイル名: フォーム検証例1.html を保存します。

ブラウザでテストを実行すると、結果は次のようになります。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • ネイティブ js はフォームの定期的な検証を実装します (検証後にのみ送信)
  • フォーム検証機能を実装するためのネイティブ js
  • JavaScript によるフォーム検証の実装
  • JS シンプルなフォーム検証関数の完全な例
  • フォーム要素を使用してフォームを検証するために JavaScript を使用するサンプル コード
  • JavaScriptはフォーム登録、フォーム検証、演算子関数を実装します
  • JS で実装されたシンプルなフォーム検証の完全な例
  • JS で実装されたシンプルなフォーム検証機能の例
  • JavaScript の基本的なフォーム検証の例 (純粋な Js 実装)
  • JavaScript によるフォーム検証の実装

<<:  IDEA が MySQL ポート番号占有に接続できない問題の解決方法

>>:  HTML でフレームセット タグを使用するチュートリアル

推薦する

WeChatアプレットの手動および自動追跡の実装の詳細説明(Taro)

どの企業もユーザーベースを拡大したいのであれば、ユーザーの操作データを収集・分析する必要があり、その...

elasticsearchを使用してインデックスデータを定期的に削除する

1. ESを使うこともあるリソースが限られている、またはビジネス上のニーズにより、最新の期間のデータ...

一般的な MySQL 関数の例の概要 [集計関数、文字列、数値、時刻と日付の処理など]

この記事では、よく使用される MySQL 関数について説明します。ご参考までに、詳細は以下の通りです...

Linux コマンドライン操作 Baidu クラウドのファイルのアップロードとダウンロード

目次0. 背景1. インストール2. Baidu Cloudアカウントにログインする3. ファイルを...

CentOS7仮想マシンで固定IPアドレスを設定する方法

私の開発環境は、VMWare 仮想マシンに CentOS をインストールし、ホスト ファイルにインタ...

入力ファイルのカスタムボタンの美化(デモ)

以前にも同じような記事を書いたことがありますが、js スクリプトを使用しており、ファイルパスを表示で...

ReactアプリケーションにおけるDOM DIFFアルゴリズムの詳細な説明

目次序文VirtualDOM とは何ですか? VirtualDOMを使用する理由DOMレンダリングペ...

Node.js の fs モジュールと Path モジュールのメソッドの詳細な説明

概要:ファイルシステム モジュールは、標準の POSIX ファイル I/O 操作セットをラップしたシ...

ウェブページ経由で jar パッケージを Nexus にアップロードする方法

Maven を使用してプロジェクトを管理する場合、jar パッケージをプライベート ウェアハウスにア...

VueのID認証管理とテナント管理の詳細な説明

目次概要ボタンレベルの権限アイデンティティ認証管理R/U 権限権限の更新テナント管理テナント切り替え...

Centos8 は kdc 暗号化に基づいて nfs を構築します

目次構成nfs サーバー (nfs.skills.com) nfs クライアント (client.s...

純粋なCSS3で実装されたネオンライト効果

達成される効果は次のとおりです。 マウスがボタン内に移動すると、ネオンライトのような効果が生成され、...

Docker Desktop で rocketmq をインストールするための非常に詳細なチュートリアル

Dockerデスクトップをインストールするダウンロード先: Docker Desktop for M...

7つの基本的なXHTMLコーディングルールの概要

1. すべてのタグには対応する終了タグが必要です以前の HTML では、<p> や &l...

nginx「504 ゲートウェイタイムアウト」エラーを解決する

ウェブサイトを作成する学生は、アクセス時に一部の nginx サーバーが 504 Gateway T...