検索
連載

バリデータとフォーマッタで“使える”Flexアプリを作ろう現場で使えるFlex実践テクニック(5)(1/2 ページ)

PC用表示 関連情報
Share
Tweet
LINE
Hatena

データの検証を行うバリデータが使えるFlex

 入力フォームはアプリケーションにつきものですが、サーバが対応できる形式で正しいデータを送信しなければ、エラーとなってしまいます。従来のWebアプリケーションでは、サーバ側でのみデータの検証が可能でしたので、ユーザーが入力したデータが間違っているかどうかは一度サーバへリクエストを送信する必要がありました。

 しかしFlexでは、クライアント側でデータの検証を行うことができるため、余分なサーバリクエストを防ぐことができます。それがバリデータです。

バリデータで文字列の長さを検証

 まずは、文字列の長さを検証する簡単なサンプルを紹介します。入力は自由な文字列ですが、4文字以上かつ8文字以下であることが必須であるとします。

 サンプルを実行し、入力フィールドに文字を入力した後、タブキーなどでフォーカスを外すと、検証が実行されます。検証の結果、入力内容が正しくないと判断された場合、TextInputの周りが赤く囲まれ、マウスオーバーすると赤いフキダシでエラー内容が表示されます。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 Flexのバリデータでは、「どのオブジェクト」の「なんのプロパティ」を検証するかをバリデータ側で制御します。入力フィールドには一切手を加えることなく、検証の仕組みのみを適用できます。

 ここでは、StringValidatorを使用して、最低文字数を設定するminLengthに4、最大文字数を設定するmaxLengthに8を指定しています。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 具体的には、sourceに対象となるオブジェクト、propertyに対象のプロパティ名を指定します。今回のサンプルではtextInputのtextを対象とします。

イベントを“引き金”にして検証する

 下記のサンプルでは、TextInput自身のEnterEvent(エンターキーを押下したときに発生するイベント)に対して検証を実行するようにしています。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 デフォルトでは、フォーカスアウトのタイミングで検証が実行されますが、任意のイベントに検証の実行を関連付けできます。そのためには、triggerとtriggerEventを使用します。triggerにはイベントの発生源のオブジェクト、triggerEventにはイベントを表す文字を指定します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

プログラム上から検証を実行

 また、validateメソッドを呼ぶことで、プログラム上から検証を実行することもできます。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 validateメソッドを実行すると、ValidationResultEventを返り値として取得できます。その中にtypeというプロパティが含まれており、検証が成功した場合はValidationResultEvent.VALID、検証が失敗した場合はValidationResultEvent.INVALIDの値がセットされるため、その後の処理を判断できます。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 続いて次ページでは、文字列表現を柔軟に指定できるフォーマッタを使った実践テクニックを解説します。

       | 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る