包 | mx.validators |
类 | public class Validator |
继承 | Validator EventDispatcher Object |
实现 | IMXMLObject |
子类 | CreditCardValidator, CurrencyValidator, DateValidator, EmailValidator, NumberValidator, PhoneNumberValidator, RegExpValidator, SocialSecurityValidator, StringValidator, ZipCodeValidator |
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.ValidationResultEvent
mx.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.ValidationResultEvent
mx.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>