ホームページ ウェブフロントエンド H5 チュートリアル HTML5 のフォーム検証の 8 つの方法の詳細な紹介

HTML5 のフォーム検証の 8 つの方法の詳細な紹介

May 14, 2018 pm 04:33 PM

フォーム検証について詳しく説明する前に、まずフォーム検証の本当の意味について考えてみましょう。フォーム検証の核心は、無効な制御データを検出し、エンド ユーザーにエラーのフラグを立てるシステムです。つまり、フォーム検証では、フォームがサーバーに送信される前にフォームに対して一連のチェックが実行され、ユーザーにエラーを修正するように通知されます。
しかし、フォーム検証とは実際には何でしょうか?
は最適化です。
フォーム検証が最適化である理由は、サーバーに送信されたフォーム データが正確で有効であることを確認するには、フォーム検証メカニズムだけでは十分ではないためです。一方、フォーム検証は、Web アプリケーションがエラーをより速くスローできるように設計されています。つまり、Web ページに無効なフォーム コントロール値が含まれていることをユーザーに通知するには、ブラウザーの組み込み処理メカニズムを使用するのが最善です。以前は、サーバーがユーザーに間違ったデータを入力したことを通知するためにのみ、データがネットワーク上を移動していました。ブラウザーがクライアントから離れる前にエラーをキャッチできる機能を十分に備えている場合は、これを活用する必要があります。
ただし、ブラウザのフォームチェックだけではすべてのエラーを処理するのに十分ではありません。
そうは言っても、HTML5 では、フォーム コントロールのデータの正確性を検証するための 8 つの方法が導入されています。それらを順番に見ていきますが、最初に、検証ステータスをフィードバックするために使用される ValidityState オブジェクトを紹介します。
Html5 フォーム検証をサポートするブラウザでは、フォーム コントロールを介して ValidityState オブジェクトにアクセスできます。

1

var valCheck = document.myForm.myInput.validity;

ログイン後にコピー

このコード行は、myInput という名前のフォーム要素の ValidityState オブジェクトを取得します。オブジェクトには、8 つの検証状態すべてへの参照と、最終的な検証結果が含まれています。
呼び出しメソッドは次のとおりです:

1

valCheck.valid

ログイン後にコピー

実行後、フォーム コントロールがすべての検証制約を通過したかどうかを示すブール値を取得します。 valid 属性は最終的な検証結果とみなすことができます。8 つの制約がすべて合格した場合、valid 属性は true になります。そうでない場合、1 つの制約が失敗する限り、valid フラグは false になります。
前述したように、フォーム要素には 8 つの検証制約が考えられます。各条件には、ValidityState オブジェクト内に対応する属性名があり、適切な方法でアクセスできます。それらを 1 つずつ分析して、フォーム コントロールとどのように関連付けられているか、および ValidityState オブジェクトに基づいてチェックする方法を確認してみましょう:
1. valueMissing
目的: フォーム コントロールの値が入力されていることを確認します。
使用法: フォーム コントロールで required 属性を true に設定します。
例:

1

<input type="text" name="myText" required>

ログイン後にコピー

詳細な説明: フォーム コントロールが必須属性を設定している場合、ユーザーが値を入力するか、コード呼び出しを通じて値を入力するまで、コントロールは無効な状態のままになります。たとえば、空のテキスト入力ボックスは、テキストが入力されない限り、必要なチェックに合格しません。入力値が空の場合、valueMissing は true を返します。
2. typeMismatch
目的: コントロールの値が予期されるタイプ (数値、電子メール、URL など) と一致することを確認します。
使用法: フォーム コントロールの type 属性値を指定します。
例:

1

<input type="email" name="myEmail">

ログイン後にコピー

詳細な説明: 特殊なフォーム コントロール タイプは、フォーム コントロールへの入力が対応するタイプ ルールに準拠していないことをブラウザが認識できる場合、たとえば携帯電話のキーボードをカスタマイズするために使用されるだけではありません。電子メール アドレス内の @ 記号、または数値タイプのコントロールの入力値が有効な数値ではない場合、ブラウザはコントロールにタイプの不一致を示すマークを付けます。エラー条件に関係なく、typeMismatch は true を返します。
3. patternMismatch
目的: 入力がフォーム コントロールに設定された形式ルールに従って有効な形式であるかどうかを確認します。
使用法: フォームコントロールにパターン属性を設定し、適切な一致ルールを割り当てます。
例:

1

2

<input type="text" name="creditcardnumber" pattern="[0-9]{16}" title="A credit

card number is 16 digits with no spaces or dashes">

ログイン後にコピー

詳細: pattern 属性は、フォーム コントロール値の正規表現検証メカニズムを設定する強力かつ柔軟な方法を開発者に提供します。コントロールにパターン属性が設定されている場合、入力コントロールの値がパターン ルールに準拠していない限り、patternMismatch は true 値を返します。ユーザー ガイダンスと技術リファレンスの観点から、ルールの役割を示すために、pattern 属性を含むフォーム コントロールに title 属性を設定する必要があります。
4. tooLong
目的: 入力値に文字数が多すぎることを避けるため。
使用法: フォーム コントロールに maxLength 属性を設定します。
例:

1

<input type="text" name="limitedText" maxLength="140">

ログイン後にコピー

詳細: 入力値の長さが maxLength を超える場合、tooLong 機能は true を返します。通常、フォーム コントロールはユーザー入力の最大長を制限しますが、プログラムで設定するなどして最大長を超える可能性がある状況もあります。
5. rangeUnderflow
目的: 数値制御の最小値を制限します。
使用法: フォーム コントロールの min 属性を設定し、許容される最小値を指定します。
例:

1

<input type="range" name="ageCheck" min="18">

ログイン後にコピー

詳細説明: 数値範囲チェックが必要なフォームコントロールでは、値が一時的に設定された下限値よりも低くなる可能性があります。このとき、ValidityState の rangeUnderflow プロパティは true を返します。
6. rangeOverflow
目的: 数値制御の最大値を制限します。
使用法: フォーム コントロールの max 属性を設定し、最大許容値を指定します。
例:

1

<input type="range" name="kidAgeCheck" max="12">

ログイン後にコピー

详细说明:与rangeUnderflow类似,如果一个表单控件的值比max更大,特性将返回true。
7、stepMismatch
目的:确保输入值符合min、max及step即设置。
用法:为表单控件设置step特性,指定数值的增量。
示例:

1

<input type="range" name="confidenceLevel" min="0" max="100" step="5">

ログイン後にコピー

详细说明:此约束条件用来保证数值符合min、max和step的要求。换句话说,当前值必须是最小值与step特性值的倍数之和。例如,范围从0到100,step特性值为5,此时就不允许出现17,否则stepMismatch返回true值。
8、customError
目的:处理应用代码明确设置及计算产生的错误。
用法:调用setCustomValidity(message)将表单控件置于customError状态。
示例:

1

passwordConfirmationField.setCustomValidity("Password values do not match.");

ログイン後にコピー

详细说明:浏览器内置的验证机制不适用时,需要显示自定义验证错误信息。当输入值不符合语义规则时,应用程序代码应设置这些自定义验证消息。
自定义验证消息的典型用例是验证控件中的值是否一致。例如,密码和密码确认两个输人框的值不匹配。只要定制了验证消息,控件就会处于无效状态,并且customError返回true。要清除错误,只需在控件上调用setCustomValidity("")即可。

以上就是详解HTML5中表单验证的8种方法介绍 的内容,更多相关内容请关注PHP中文网(www.php.cn)!

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

HTMLの表の境界線 HTMLの表の境界線 Sep 04, 2024 pm 04:49 PM

HTML の表の境界線に関するガイド。ここでは、HTML でのテーブルの境界線の例を示しながら、テーブル境界線を定義する複数の方法について説明します。

HTML のネストされたテーブル HTML のネストされたテーブル Sep 04, 2024 pm 04:49 PM

これは、HTML でのネストされたテーブルのガイドです。ここでは、テーブル内にテーブルを作成する方法をそれぞれの例とともに説明します。

HTML 左マージン HTML 左マージン Sep 04, 2024 pm 04:48 PM

HTML マージン左のガイド。ここでは、HTML margin-left の概要とその例、およびそのコード実装について説明します。

HTML テーブルのレイアウト HTML テーブルのレイアウト Sep 04, 2024 pm 04:54 PM

HTML テーブル レイアウトのガイド。ここでは、HTML テーブル レイアウトの値と例および出力について詳しく説明します。

HTML入力プレースホルダー HTML入力プレースホルダー Sep 04, 2024 pm 04:54 PM

HTML 入力プレースホルダーのガイド。ここでは、コードと出力とともに HTML 入力プレースホルダーの例について説明します。

HTML 順序付きリスト HTML 順序付きリスト Sep 04, 2024 pm 04:43 PM

HTML 順序付きリストのガイド。ここでは、HTML 順序付きリストと型の導入とその例についても説明します。

HTML の onclick ボタン HTML の onclick ボタン Sep 04, 2024 pm 04:49 PM

HTML オンクリック ボタンのガイド。ここでは、それらの紹介、動作、例、およびさまざまなイベントでの onclick イベントについてそれぞれ説明します。

HTML 内のテキストの移動 HTML 内のテキストの移動 Sep 04, 2024 pm 04:45 PM

HTML でのテキストの移動に関するガイド。ここでは、概要、マーキー タグが構文でどのように機能するか、および実装例について説明します。

See all articles