ユーザーがフォームに入力したデータには、入力ミスや項目の記入忘れなど、不備があることが多くあります。この確認を行うために、Flex 2では、ユーザーが入力した値の正当性をチェックする、バリデータ(Validator)という仕組みが用意されています。
電子メールの形式を確認するEmailValidator、文字列の長さを確認するStringValidator、任意の正規表現のパターンで確認するRegExpValidatorなど、さまざまなバリデータが用意されており、あらゆる入力の間違いを検証できるようになっています。
以下は電子メール用のEmailValidatorの利用例です。EmailValidatorタグを記述し、そのsource属性にチェックしたいコントロールのidを指定するだけなので、とても手軽です。
<!-- チェックする入力フィールド -->
<mx:TextInput id="mail_txt"/>
<!-- 電子メールバリデータを仕掛ける -->
<mx:EmailValidator source="{mail_txt}" property="text"/>
これで、ユーザーが入力した値が間違っていると、赤い枠とメッセージで、入力が間違っていることを教えてくれるようになります。ただし、電子メールの形式が正しいかどうかをチェックするだけで、実在するアドレスかどうかまでチェックすることはできません。
それから、ユーザーから入力してもらったデータをサーバへ送信する前に、再度その入力されたデータが正しいかどうかチェックする必要があるでしょう。
最終チェックは、バリデータのvalidate()メソッドを使って行います。
// 入力値の最終チェック
var res:ValidationResultEvent = mail_txt.validate();
if (res.type == ValidationResultEvent.INVALID) {
Alert.show("入力に誤りがあります。見直してください。");
return;
}
// 入力が正しければ、サーバにデータを送信
form_sender.send();
しかし、この方法では、各チェック項目ごとにvalidate()メソッドを呼ばなくてはならず面倒です。Validatorには、配列として指定したバリデータを一度に検証できるValidate All()というメソッドが用意されているので、こちらを使うのもよいでしょう。