Webフォームに入力された値が、一定の条件をみたすかどうかを検証するコントロールです。次のような種類があります。
ユーザーが入力したデータを、他のコントロールの値か、定数で比較をします。
プロパティ名 | 概要 |
---|---|
ControlToCompare | 検証対象の入力コントロールと比較する入力コントロールを取得・設定する |
ControlToValidate | 検証対象の入力コントロールを取得・設定する |
ErrorMessage | 検証が失敗したときに表示するエラーメッセージを取得・設定する |
IsValid | 検証が成功したかどうかを示す値を取得・設定する |
Operator | 検証で実行する比較演算を取得・設定する |
ValueToCompare | 検証で比較対象とする定数値を取得・設定する |
○ プロジェクト
プロジェクトを作成して確認してみましょう。
プロジェクトの種類 | ASP.NET Webアプリケーション |
---|---|
プロジェクト名 | CompareValidatorTest |
○ デザイン
Webフォームを追加して、次の図のように各コントロールを配置してください。
○ プログラム
次のように設定ファイルに追加してください。
Web.config
○ 実行結果
○ 解説
今回は、txtMail2を検証対象として、txtMailと比較して一致しない場合はエラーメッセージを表示しています。
ユーザーが入力したデータに対して、ユーザー定義の検証を行います。
プロパティ名 | 概要 |
---|---|
ClientValidationFunction | 検証に使用するクライアント側のスクリプト関数名を取得・設定する |
ControlToValidate | 検証対象の入力コントロールを取得・設定する |
ErrorMessage | 検証が失敗したときに表示するエラーメッセージを取得・設定する |
IsValid | 検証が成功したかどうかを示す値を取得・設定する |
○ プロジェクト
プロジェクトを作成して確認してみましょう。
プロジェクトの種類 | ASP.NET Webアプリケーション |
---|---|
プロジェクト名 | CustomValidatorTest |
○ デザイン
Webフォームを追加して、次の図のように各コントロールを配置してください。
○ プログラム
次のように設定ファイルに追加してください。
Web.config
index.aspxのソースを開き、次のようにJavascriptを追加してください。
index.aspx
○ 実行結果
○ 解説
検証コントローラーで検証できるものがない場合などに独自の検証をさせることができます。Javascriptで検証内容を自作できます。次の仕様の関数を用意します。
検証対象にアクセスする場合はarguments引数のValueプロパティを使います。検証の結果を返すにはarguments引数のIsValidプロパティにTrue(検証成功)かFalse(検証失敗)をセットします。
自作の検証用関数を用意したら、その関数名をCustomValidatorコントロールのClientValidationFunctionプロパティにセットします。
ユーザーが入力した値が範囲内かどうかを検証します。
プロパティ名 | 概要 |
---|---|
ControlToValidate | 検証対象の入力コントロールを取得・設定する |
ErrorMessage | 検証が失敗したときに表示するエラーメッセージを取得・設定する |
IsValid | 検証が成功したかどうかを示す値を取得・設定する |
MaximumValue | 検証範囲の最大値を取得・設定する |
MinimumValue | 検証範囲の最小値を取得・設定する |
Type | 検証する際に使用されるデータ型を取得・設定する |
○ プロジェクト
プロジェクトを作成して確認してみましょう。
プロジェクトの種類 | ASP.NET Webアプリケーション |
---|---|
プロジェクト名 | RangeValidatorTest |
○ デザイン
Webフォームを追加して、次の図のように各コントロールを配置してください。
○ プログラム
次のように設定ファイルに追加してください。
Web.config
○ 実行結果
○ 解説
RangeValidatorコントロールのMinimumValueプロパティに1を、MaximumValueプロパティに99を設定しています。これにより、1~99までの範囲かどうかを比較しています。また、TypeプロパティにIntegerとセットしているので、整数値として比較します。
またTextBoxコントロールのTextModeプロパティにNumberをセットしているので、数字以外を入力して送信しようとするとエラーメッセージが表示され、送信できません。
正規表現を利用して、ユーザーの入力が電話番号、郵便番号、電子メール、アドレスなど、定義済みパターンに一致することを検証します。
プロパティ名 | 概要 |
---|---|
ControlToValidate | 検証対象の入力コントロールを取得・設定する |
ErrorMessage | 検証が失敗したときに表示するエラーメッセージを取得・設定する |
IsValid | 検証が成功したかどうかを示す値を取得・設定する |
ValidationExpression | 検証に使用するパターンを決定する正規表現を取得・設定する |
○ プロジェクト
プロジェクトを作成して確認してみましょう。
プロジェクトの種類 | ASP.NET Webアプリケーション |
---|---|
プロジェクト名 | RegularExpressionValidatorTest |
○ デザイン
Webフォームを追加して、次の図のように各コントロールを配置してください。
○ プログラム
次のように設定ファイルに追加してください。
Web.config
○ 実行結果
○ 解説
ReqularExpressionValidatorコントロールのValidationExpressionプロパティに正規表現をセットします。独自の正規表現を作って適用させることもできます。入力のデータの形式をチェックするにはHtml5の検証機能を使うこともできます。その場合、TextBoxコントロールのTextModeプロパティに検証したいデータの種類を選択すると検証されるようになります。
ユーザーがコントロールにデータを入力したかどうかを検証します。
プロパティ名 | 概要 |
---|---|
ControlToValidate | 検証対象の入力コントロールを取得・設定する |
ErrorMessage | 検証が失敗したときに表示するエラーメッセージを取得・設定する |
IsValid | 検証が成功したかどうかを示す値を取得・設定する |
InitialValue | 検証に使用する初期値を取得・設定する |
○ プロジェクト
プロジェクトを作成して確認してみましょう。
プロジェクトの種類 | ASP.NET Webアプリケーション |
---|---|
プロジェクト名 | RequireFieldValidatorTest |
○ デザイン
Webフォームを追加して、次の図のように各コントロールを配置してください。
○ プログラム
次のように設定ファイルに追加してください。
Web.config
○ 実行結果
○ 解説
データを送信する前にInitialValueプロパティの内容かどうかを検証します。もし、InitialValueプロパティの内容であればエラーとします。
すべての検証エラーの概要をインライン表示します。
プロパティ名 | 概要 |
---|---|
DisplayMode | ValidationSummaryコントロールの表示モードを取得・設定する |
ShowMessageBox | 検証の概要をメッセージボックスに表示するかどうかの値を取得・設定する |
ShowSummary | 検証の概要をインライン表示するかどうかの値を取得・設定する |
○ プロジェクト
プロジェクトを作成して確認してみましょう。
プロジェクトの種類 | ASP.NET Webアプリケーション |
---|---|
プロジェクト名 | ValidationSummaryTest |
○ デザイン
Webフォームを追加して、次の図のように各コントロールを配置してください。
○ プログラム
次のように設定ファイルに追加してください。
Web.config
○ 実行結果
○ 解説
Webページに検証エラーがある場合、その内容がValidationSummaryコントロールに表示されます。また、ShowMessageBoxプロパティにTrueをセットすると、検証エラーの内容がメッセージボックスに表示されるようになります。
ここまで見た検証コントロールは検証をJavascriptで行うため、検証はWebブラウザーで処理させることができます。