Flexで通貨フォーマットのTextInputを使用する Flexで入力例を表示するTextInputを使用する
02/21

FlexのTextInputの拡張の第2弾、URLを入力させてその書式が正しくない場合はエラーとするTextInputの例です。

まず、URLの書式をValidateするVaridatorを作ります。Action Script には、正規表現用のValidatorであるmx.validators.RegExpValidatorがあるので、これを拡張します。

URLValidator

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package hoge
{
  import mx.validators.RegExpValidator;
  import mx.validators.ValidationResult;
  public class URLValidator extends RegExpValidator
  {
     public function URLValidator()
     {
        super();
        this.expression =
          "^(https?|ftp)(://[a-zA-Z0-9-]+[.][a-zA-Z0-9-.].*)$";
        this.property = "text";
        this.required = false;
      }
 
     override protected function doValidation(value:Object):Array {
       var results:Array = super.doValidation(value);
       if ( results.length > 0 ) {
         var result:ValidationResult = results[0];
         result.errorMessage = "URLの形式が正しくありません。"
       }
       return results;
     }
  }
}

URLの正規表現はもう少し、よい方法もあると思いますが、だいたいこんな感じ。
20行目で、doValidationの戻り値の0番目のerrorMessageを書き換えています。これを書き換えなければ、「フィールドが無効です」というメッセージになります。

次に、このURLValidatorを実装した、URLTextInputを作成します。

URLTextInput

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package hoge
{
  import mx.controls.TextInput;
  import hoge.URLValidator;
  public class URLTextInput extends TextInput
  {
    private var urlValidator:URLValidator;
    public function URLTextInput()
    {
        super();
        urlValidator = new URLValidator();
        urlValidator.source = this;
        urlValidator.property = "text";
    }
  }
}

URLTextInput-Sample

この記事へのトラックバックURL:

コメントを書く

このエントリーを含むはてなブックマーク