| 包 | mx.validators |
| 类 | public class Validator |
| 继承 | Validator EventDispatcher Object |
| 实现 | IMXMLObject |
| 子类 | CreditCardValidator, CurrencyValidator, DateValidator, EmailValidator, NumberValidator, PhoneNumberValidator, RegExpValidator, SocialSecurityValidator, StringValidator, ZipCodeValidator |
隐藏 MXML 语法The Validator class defines the following tag attributes, which all of its subclasses inherit:
<mx:Validator
enabled="true|false"
listener="Value of the source property"
property="No default"
required="true|false"
requiredFieldError="This field is required."
source="No default"
trigger="Value of the source property"
triggerEvent="valueCommit"
/>
另请参见
| 属性 | 定义方 | ||
|---|---|---|---|
![]() | constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | |
| enabled : Boolean 将此值设置为 false 将停止验证程序执行验证操作。 | Validator | ||
| listener : Object 指定验证侦听器。 | Validator | ||
| property : String 一个字符串,用于指定包含要验证的值的 source 对象的属性名称。 | Validator | ||
![]() | prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object | |
| required : Boolean = true 如果为 true,则指定缺少值或空值将导致验证错误。 | Validator | ||
| requiredFieldError : String 缺少值和 required 属性为 true 时的错误消息。 | Validator | ||
| source : Object 指定包含要验证的属性的对象。 | Validator | ||
| trigger : IEventDispatcher 指定生成触发验证程序的组件。 | Validator | ||
| triggerEvent : String 指定触发验证的事件。 | Validator | ||
| 属性 | 定义方 | ||
|---|---|---|---|
| actualListeners : Array [只读 (read-only)] 包含侦听器对象(如果有)的数组或源对象。 | Validator | ||
| actualTrigger : IEventDispatcher [只读 (read-only)] 包含触发器对象(如果有)或源对象。 | Validator | ||
| resourceManager : IResourceManager [只读 (read-only)] 引用管理所有应用程序本地化资源的对象。 | Validator | ||
| subFields : Array 一个字符串数组,其中包含传递到 validate() 方法的 value 对象中所含属性的名称。 | Validator | ||
| 方法 | 定义方 | ||
|---|---|---|---|
构造函数。 | Validator | ||
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void 使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | |
![]() | 将事件调度到事件流中。 | EventDispatcher | |
![]() | 检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | |
![]() |
指示对象是否已经定义了指定的属性。 | Object | |
如果 Validator 是使用 MXML 标签创建的,则由 MXML 编译器自动调用。 | Validator | ||
![]() |
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | |
![]() |
指示指定的属性是否存在、是否可枚举。 | Object | |
![]() | 从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | |
![]() |
设置循环操作动态属性的可用性。 | Object | |
![]() |
返回指定对象的字符串表示形式。 | Object | |
执行验证并(可选)将结果通知给侦听器。 | Validator | ||
[静态] 调用验证程序数组中的所有验证程序。 | Validator | ||
![]() |
返回指定对象的原始值。 | Object | |
![]() | 检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。 | EventDispatcher | |
| 方法 | 定义方 | ||
|---|---|---|---|
为从验证程序调度的有效和无效事件设置所有侦听器。 | Validator | ||
执行此验证程序的验证逻辑,包括验证缺少值或空值是否会导致如 required 属性的值所定义的验证错误。 | Validator | ||
返回要验证的对象。 | Validator | ||
从错误结果数组返回 ValidationResultEvent。 | Validator | ||
如果值不为 null,则返回 true。 | Validator | ||
断开从验证程序调度的有效和无效事件的所有侦听器的连接。 | Validator | ||
构造 Validator 后,每当 ResourceManager 又调度一个“change”事件以指示已通过某种方式更改了本地化资源时,将会调用此方法。 | Validator | ||
| 事件 | 摘要 | 定义方 | ||
|---|---|---|---|---|
![]() | [广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。 | EventDispatcher | ||
![]() | [广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。 | EventDispatcher | ||
| 在验证失败时调度。 | Validator | |||
| 在验证成功时调度。 | Validator | |||
| 常量 | 定义方 | ||
|---|---|---|---|
| DECIMAL_DIGITS : String = "0123456789" [静态] 包含十进制数字 0 到 9 的字符串。 | Validator | ||
| ROMAN_LETTERS : String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" [静态] 包含大写和小写罗马字母(“A”到“Z”和“a”到“z”)的字符串。 | Validator | ||
| actualListeners | 属性 |
actualListeners:Array [只读 (read-only)] 包含侦听器对象(如果有)的数组或源对象。用于确定向哪个对象通知验证结果。
protected function get actualListeners():Array| actualTrigger | 属性 |
actualTrigger:IEventDispatcher [只读 (read-only)]
包含触发器对象(如果有)或源对象。用于确定 triggerEvent 的侦听器对象。
protected function get actualTrigger():IEventDispatcher| enabled | 属性 |
enabled:Boolean [读写]
将此值设置为 false 将停止验证程序执行验证操作。禁用验证程序时,它不调度任何事件,validate() 方法返回 null。
默认值为 true.
public function get enabled():Boolean public function set enabled(value:Boolean):void| listener | 属性 |
listener:Object [读写] 指定验证侦听器。
如果不指定侦听器,则 Flex 使用 source 属性的值。Flex 确定源组件后,它将更改组件的边框颜色,显示错误消息(如果验证失败)或者隐藏任何现有错误消息(如果验证成功)。
public function get listener():Object public function set listener(value:Object):void| property | 属性 |
property:String [读写]
一个字符串,用于指定包含要验证的值的 source 对象的属性名称。该属性为可选项,但如果指定 source,则应同时设置此属性的值。
默认值为 null.
public function get property():String public function set property(value:String):void| required | 属性 |
| requiredFieldError | 属性 |
requiredFieldError:String [读写]
缺少值和 required 属性为 true 时的错误消息。
默认值为 "This field is required.".
public function get requiredFieldError():String public function set requiredFieldError(value:String):void| resourceManager | 属性 |
resourceManager:IResourceManager [只读 (read-only)] 引用管理所有应用程序本地化资源的对象。此项是 singleton 实例,实现 IResourceManager 接口。
此属性可用作数据绑定的源。修改此属性后,将调度 unused 事件。
protected function get resourceManager():IResourceManager| source | 属性 |
source:Object [读写]
指定包含要验证的属性的对象。将此设置为组件或数据模型的实例。使用 MXML 中的数据绑定语法指定该值。此属性支持使用句点分隔的字符串指定嵌套属性。如果为 source 属性指定值,则应该同时为 property 属性指定值。source 属性是可选的。
默认值为 null.
public function get source():Object public function set source(value:Object):void| subFields | 属性 |
protected var subFields:Array
一个字符串数组,其中包含传递到 validate() 方法的 value 对象中所含属性的名称。例如,CreditCardValidator 将此属性设置为 [ "cardNumber", "cardType" ]。此值表示传递到 validate() 方法的 value 对象应该包含 cardNumber 和 cardType 属性。
验证多个数据字段的 Validator 类的子类(如 CreditCardValidator 和 DateValidator)应该在其构造函数中分配这一属性。
| trigger | 属性 |
trigger:IEventDispatcher [读写]
指定生成触发验证程序的组件。如果省略,则在默认情况下,Flex 使用 source 属性的值。当 trigger 调度 triggerEvent 时,执行验证。
public function get trigger():IEventDispatcher public function set trigger(value:IEventDispatcher):void| triggerEvent | 属性 |
triggerEvent:String [读写]
指定触发验证的事件。如果省略,则 Flex 使用 valueCommit 事件。当用户完成在控件中输入数据时,Flex 调度 valueCommit 事件。通常,当用户从组件删除焦点或者以编程方式更改属性值时发生此操作。如果希望验证程序忽略所有事件,则将 triggerEvent 设置为空字符串 ("")。
public function get triggerEvent():String public function set triggerEvent(value:String):void| Validator | () | 构造函数 |
public function Validator()构造函数。
| addListenerHandler | () | 方法 |
protected function addListenerHandler():void
为从验证程序调度的 valid 和 invalid 事件设置所有侦听器。如果这些侦听器或资源之一的值发生更改,则 Validator 类的子类应先调用 removeListenerHandler() 方法,然后再调用 addListenerHandler() 方法。CreditCardValidator 和 DateValidator 类在内部使用此函数。
| doValidation | () | 方法 |
protected function doValidation(value:Object):Array
执行此验证程序的验证逻辑,包括验证缺少值或空值是否会导致如 required 属性的值所定义的验证错误。
如果创建 validator 类的子类,则必须覆盖此方法。
参数
value:Object — 要验证的值。 |
Array — 对于无效结果,为 ValidationResult 对象的数组,其中包含验证程序所检查的每个验证失败的字段的一个 ValidationResult 对象。 |
另请参见
| getValueFromSource | () | 方法 |
protected function getValueFromSource():Object返回要验证的对象。诸如 CreditCardValidator 和 DateValidator 类之类的子类将覆盖此方法,因为它们需要从多个子字段访问值。
返回Object — 要验证的对象。 |
| handleResults | () | 方法 |
protected function handleResults(errorResults:Array):ValidationResultEvent
从错误结果数组返回 ValidationResultEvent。在内部,此函数从 doValidation() 方法获取结果,并将其置于 ValidationResultEvent 对象中。如果诸如 RegExpValidator 类之类的子类输出 ValidationResultEvent 对象的子类(如 RegExpValidationResult 对象)且需要使用其它信息填充该对象,则它们应该覆盖此函数。永远不要直接调用此函数,并且应该极少覆盖它。
参数
errorResults:Array — ValidationResult 对象的数组。 |
ValidationResultEvent —
validate() 方法返回的 ValidationResultEvent。
|
| initialized | () | 方法 |
public function initialized(document:Object, id:String):void如果 Validator 是使用 MXML 标签创建的,则由 MXML 编译器自动调用。
参数
document:Object — 包含此 Validator 的 MXML 文档。 | |
id:String — 已忽略。 |
| isRealValue | () | 方法 |
protected function isRealValue(value:Object):Boolean
如果 value 不为 null,则返回 true。
参数
value:Object — 要测试的值。 |
Boolean —
如果 value 不为 null,则返回 true。
|
| removeListenerHandler | () | 方法 |
protected function removeListenerHandler():void
断开从验证程序调度的 valid 和 invalid 事件的所有侦听器的连接。如果这些侦听器或资源之一的值发生更改,则子类应先调用 removeListenerHandler() 方法,然后再调用 addListenerHandler 方法。CreditCardValidator 和 DateValidator 类在内部使用此函数。
| resourcesChanged | () | 方法 |
protected function resourcesChanged():void
构造 Validator 后,每当 ResourceManager 又调度一个 "change" 事件以指示已通过某种方式更改了本地化资源时,将会调用此方法。
在下列情形中调度此事件:设置 ResourceManager 的 localeChain 属性时,资源模块完成加载时,以及调用 ResourceManager 的 update() 方法时。
子类应覆盖此方法,并在调用 super.resourcesChanged() 后,执行任何适当的操作以响应新资源值。
| validate | () | 方法 |
public function validate(value:Object = null, suppressEvents:Boolean = false):ValidationResultEvent执行验证并(可选)将结果通知给侦听器。
参数
value:Object (default = null) —
要验证的可选值。如果为 null,则验证程序使用 source 和 property 属性确定值。如果指定此参数,则还应设置 listener 属性以指定验证错误消息的目标组件。
| |
suppressEvents:Boolean (default = false) —
如果为 false,则在验证后,验证程序会将结果通知给侦听器。
|
ValidationResultEvent —
包含验证结果的 ValidationResultEvent 对象。如果验证成功,则 ValidationResultEvent.results 数组属性为空。如果验证失败,则 ValidationResultEvent.results 数组属性包含验证程序所检查的每个字段的一个 ValidationResult 对象,对于验证失败的字段和通过验证的字段都是如此。检查 ValidationResult.isError 属性以确定字段的验证是通过还是失败。
|
另请参见
| validateAll | () | 方法 |
public static function validateAll(validators:Array):Array
调用 validators 数组中的所有验证程序。返回一个数组,其中包含每个失败验证程序的一个 ValidationResultEvent 对象。如果所有验证程序都成功,则返回空数组。
参数
validators:Array — 包含要执行的 Validator 对象的数组。 |
Array — ValidationResultEvent 对象的数组,其中数组包含每个失败验证程序的一个 ValidationResultEvent 对象。如果所有验证程序都成功,则数组为空。 |
| invalid | 事件 |
mx.events.ValidationResultEventmx.events.ValidationResultEvent.INVALID在验证失败时调度。
ValidationResultEvent.INVALID 常数可为 invalid 事件定义事件对象的 type 属性值。该常数的值是“invalid”。
事件对象的属性有下列值:
| 属性 | 值 |
|---|---|
bubbles
| false |
cancelable
| false |
currentTarget
|
用于定义处理该事件的事件侦听器的 Object。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。
|
field
| 验证失败的字段名称。 |
message
| 单个字符串,其中包含结果 Array 中所有 ValidationResult 对象的错误消息。 |
results
| ValidationResult 对象的数组,每个对象对应一个验证的字段。 |
target
|
调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。
|
| valid | 事件 |
mx.events.ValidationResultEventmx.events.ValidationResultEvent.VALID在验证成功时调度。
ValidationResultEvent.VALID 常数可为 valid 事件定义事件对象的 type 属性值。该常数的值是“valid”。
事件对象的属性有下列值:
| 属性 | 值 |
|---|---|
bubbles
| false |
cancelable
| false |
currentTarget
|
用于定义处理该事件的事件侦听器的 Object。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。
|
field
| 一个空字 String。 |
message
| 一个空字 String。 |
results
| 一个空 Array。 |
target
|
调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。
|
| DECIMAL_DIGITS | 常量 |
protected static const DECIMAL_DIGITS:String = "0123456789"包含十进制数字 0 到 9 的字符串。
| ROMAN_LETTERS | 常量 |
protected static const ROMAN_LETTERS:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"包含大写和小写罗马字母(“A”到“Z”和“a”到“z”)的字符串。
<?xml version="1.0"?>
<!-- Simple example to demonstrate the Validator class. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
// Import necessary classes.
import mx.controls.Alert;
import mx.events.ValidationResultEvent;
// Event listener for the valid and invalid events.
private function handleValid(eventObj:ValidationResultEvent):void {
if(eventObj.type==ValidationResultEvent.VALID)
// Enable Submit button.
submitButton.enabled = true;
else
submitButton.enabled = false;
}
// Submit form is everything is valid.
private function submitForm():void {
Alert.show("Form Submitted!");
}
]]>
</mx:Script>
<!-- The Validator class defines the required property and the validator events
used by all validator subclasses. -->
<mx:Validator id="reqValid" required="true"
source="{fname}" property="text"
valid="handleValid(event)" invalid="handleValid(event)"/>
<mx:Panel title="Validator Example" width="100%" height="100%"
paddingTop="5" paddingLeft="5" paddingRight="5" paddingBottom="5">
<mx:Form>
<mx:Text width="100%" color="blue"
text="Enter a value in the Name field before you can submit. The E-mail field is optional."/>
<mx:FormItem label="Name: " required="true">
<mx:TextInput id="fname" width="100%"/>
</mx:FormItem>
<mx:FormItem label="E-mail address: " required="false">
<mx:TextInput id="email" width="100%"/>
</mx:FormItem>
<mx:FormItem>
<mx:Button id="submitButton" enabled="false"
label="Submit" click="submitForm();"/>
</mx:FormItem>
</mx:Form>
</mx:Panel>
</mx:Application>