【Adobe AIR】メールアドレスの入力チェック

以前に、Adobe Airでメールアドレスの入力チェックのテストプログラムを作ってた。
残しとこう!

 

SampleMailValidate
 ┗src
   ┣com
   ┃ ┗mycustom
   ┃   ┗components
   ┃      ┗TextInputEmail.as
   ┣SampleMailValidate.mxml
   ┗SampleMailValidate-app.xml

 

TextInputEmail.as

package com.mycustom.components
{
    import flash.events.Event;
    
    import mx.controls.TextInput;
    import mx.events.FlexEvent;
    import mx.events.ValidationResultEvent;
    import mx.validators.EmailValidator;
    
    public class TextInputEmail extends TextInput
    {
        private var emailValidator:EmailValidator = new EmailValidator();
        private var validator:ValidationResultEvent;

        public function TextInputEmail()
        {
            super();
            this.emailValidator.source = this;
            this.emailValidator.property = "text";
            this.addEventListener(FlexEvent.ENTER, this.validate);
            
        }

        private function validate(event:Event):void
        {
            validator = emailValidator.validate();

            if (validator.type == ValidationResultEvent.VALID)
            {
                this.errorString = "";
            } else {
                this.errorString = validator.message;
            }
        }
        
    }
}

 

SampleMailValidate.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundColor="#FFFFFF" backgroundAlpha="0" xmlns:me="com.mycustom.components.*">
    <mx:Form>
        <mx:FormItem label="Email Address:" >
            <me:TextInputEmail />
        </mx:FormItem>
        <mx:FormItem>
            <mx:Button label="Submit" />
        </mx:FormItem>
    </mx:Form>
</mx:WindowedApplication>

 

フォーカスアウトした途端にバリデートしてくれるのはいいけど、
入力項目の色が赤くなるだけで、マウスを当てないとメッセージが表示されない。
バリデートした結果許可されないなら、即座にこのエラーメッセージの出現と、
フォーカスを移さない制御を行いたかったけど、これまた分からず・・・。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です