DataVerify.mxml
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:myV="myValidators.*" xmlns:local="*" creationComplete="initValidatorArray();" width="402" height="152">
<mx:Script>
<![CDATA[
import mx.events.ValidationResultEvent;
import mx.core.UIComponent;
import mx.controls.Alert;
import mx.validators.*;
private var myValidators:Array;
private function initValidatorArray():void {
myValidators=[zipV, pnV,nameV];
}
//按钮事件,检测通过执行操作
private function btnValidate_Click(event:Event):void{
var validatorResults:Array = mx.validators.Validator.validateAll(myValidators);
//长度为0表示所有验证通过
if(validatorResults.length == 0){
mx.controls.Alert.show("Validate OK!");
}else{
//将光标定位到第一个错误
var v:ValidationResultEvent = validatorResults[0] as ValidationResultEvent;
(v.target.source as UIComponent).setFocus();
}
}
]]>
</mx:Script>
<!--如果你要在验证错误提示中显示中文,使用这个改变字体大小!-->
<mx:Style>
.errorTip {fontFamily:"simsun"; fontSize:"12"}
</mx:Style>
<mx:ZipCodeValidator id="zipV" source="{zipCodeInput}" property="text" requiredFieldError="邮编必须填写"/>
<mx:PhoneNumberValidator id="pnV" source ="{phoneNumberInput}" property="text" />
<myV:NameValidator id="nameV" source="{txtName}" property="text" requiredFieldError="不能为空"/>
<mx:Form x="24" y="24">
<mx:FormItem label="zip Code:" required="true">
<mx:TextInput id="zipCodeInput"/>
</mx:FormItem>
<mx:FormItem label="phone Number:" required="true">
<mx:TextInput id="phoneNumberInput"/>
</mx:FormItem>
<mx:FormItem label="name:" required="true">
<mx:TextInput id="txtName"/>
</mx:FormItem>
</mx:Form>
<mx:Button label="Validate" click="btnValidate_Click(event)"/>
</mx:Application>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:myV="myValidators.*" xmlns:local="*" creationComplete="initValidatorArray();" width="402" height="152">
<mx:Script>
<![CDATA[
import mx.events.ValidationResultEvent;
import mx.core.UIComponent;
import mx.controls.Alert;
import mx.validators.*;
private var myValidators:Array;
private function initValidatorArray():void {
myValidators=[zipV, pnV,nameV];
}
//按钮事件,检测通过执行操作
private function btnValidate_Click(event:Event):void{
var validatorResults:Array = mx.validators.Validator.validateAll(myValidators);
//长度为0表示所有验证通过
if(validatorResults.length == 0){
mx.controls.Alert.show("Validate OK!");
}else{
//将光标定位到第一个错误
var v:ValidationResultEvent = validatorResults[0] as ValidationResultEvent;
(v.target.source as UIComponent).setFocus();
}
}
]]>
</mx:Script>
<!--如果你要在验证错误提示中显示中文,使用这个改变字体大小!-->
<mx:Style>
.errorTip {fontFamily:"simsun"; fontSize:"12"}
</mx:Style>
<mx:ZipCodeValidator id="zipV" source="{zipCodeInput}" property="text" requiredFieldError="邮编必须填写"/>
<mx:PhoneNumberValidator id="pnV" source ="{phoneNumberInput}" property="text" />
<myV:NameValidator id="nameV" source="{txtName}" property="text" requiredFieldError="不能为空"/>
<mx:Form x="24" y="24">
<mx:FormItem label="zip Code:" required="true">
<mx:TextInput id="zipCodeInput"/>
</mx:FormItem>
<mx:FormItem label="phone Number:" required="true">
<mx:TextInput id="phoneNumberInput"/>
</mx:FormItem>
<mx:FormItem label="name:" required="true">
<mx:TextInput id="txtName"/>
</mx:FormItem>
</mx:Form>
<mx:Button label="Validate" click="btnValidate_Click(event)"/>
</mx:Application>
NameValidator.as
package myValidators
{
import mx.controls.Text;
import mx.validators.Validator;
import mx.validators.ValidationResult;
public class NameValidator extends Validator
{
// Define Array for the return value of doValidation().
private var results:Array;
public function NameValidator ()
{
super();
}
override protected function doValidation(value:Object):Array
{
var name:String=value as String;
// Clear results Array.
results = [];
// Call base class doValidation().
results = super.doValidation(value);
// Return if there are errors.
if (results.length > 0)
return results;
// Check name field.
if(name!="huangxi")
{
results.push(new ValidationResult(true,
"name", "wrongName", "Please Enter the Name 'huangxi'."));
return results;
}
return results;
}
}
}
{
import mx.controls.Text;
import mx.validators.Validator;
import mx.validators.ValidationResult;
public class NameValidator extends Validator
{
// Define Array for the return value of doValidation().
private var results:Array;
public function NameValidator ()
{
super();
}
override protected function doValidation(value:Object):Array
{
var name:String=value as String;
// Clear results Array.
results = [];
// Call base class doValidation().
results = super.doValidation(value);
// Return if there are errors.
if (results.length > 0)
return results;
// Check name field.
if(name!="huangxi")
{
results.push(new ValidationResult(true,
"name", "wrongName", "Please Enter the Name 'huangxi'."));
return results;
}
return results;
}
}
}
//////////////////////////////////
总结
1.新建自定义的NameValidator继承Validator,并重写doValidation(),将自定义的方法加入到此函数中去
2.不允许空的错误提示可用requiredFieldError属性
3.<mx:FormItem>中有required属性,设置为true则出现"*"