flex中validateall()方法はマルチItem検証を実現し、結果統一提示を行う。
3243 ワード
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
creationComplete="initHandler(event)">
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.FlexEvent;
import mx.events.ValidationResultEvent;
import mx.validators.Validator;
private var error1:String;
private var error2:String;
private var error3:String;
protected function initHandler(event:FlexEvent):void
{
}
protected function btn_clickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
var validateArray:Array=Validator.validateAll(
[NAMEValidator,AGEValidator,PHONEValidator]);
if(validateArray.length==0)
{
Alert.show(" !");
}else
{
Alert.show(error1+"
"+error2+"
"+error3);
}
}
protected function NAMEValidator_invalidHandler(event:ValidationResultEvent):void
{
error1 =event.message;
}
protected function AGEValidator_invalidHandler(event:ValidationResultEvent):void
{
error2 =event.message;
}
protected function PHONEValidator_invalidHandler(event:ValidationResultEvent):void
{
error3 =event.message;
}
]]>
</fx:Script>
<fx:Declarations>
<mx:StringValidator id="NAMEValidator"
source="{username}"
property="text"
minLength="6" maxLength="16"
tooLongError=" 16 " tooShortError=" "
required="true"
invalid="NAMEValidator_invalidHandler(event)"
/>
<mx:NumberValidator id="AGEValidator" source="{age}"
domain="int" allowNegative="false" maxValue="60" minValue="18"
required="true" property="text"
exceedsMaxError=" 60" lowerThanMinError=" "
invalid="AGEValidator_invalidHandler(event)"
/>
<mx:PhoneNumberValidator id="PHONEValidator"
minDigits="11" property="text"
source="{phone}"
required="true"
invalid="PHONEValidator_invalidHandler(event)"/>
</fx:Declarations>
<mx:Panel>
<mx:Form>
<mx:FormItem label="name">
<mx:TextInput id="username"/>
</mx:FormItem>
<mx:FormItem label="age">
<mx:TextInput id="age"/>
</mx:FormItem>
<mx:FormItem label="phone">
<mx:TextInput id="phone"/>
</mx:FormItem>
<mx:FormItem>
<mx:Button label=" " id="btn" click="btn_clickHandler(event)"/>
</mx:FormItem>
</mx:Form>
</mx:Panel>
</s:Application>