语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
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" />
相关 API 元素
属性 | 由以下参数定义 | ||
---|---|---|---|
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
enabled : Boolean
将此值设置为 false 将停止验证程序执行验证操作。 | Validator | ||
listener : Object
指定验证侦听器。 | Validator | ||
property : String
一个字符串,用于指定包含要验证的值的 source 对象的属性名称。 | Validator | ||
required : Boolean = true
如果为 true,则指定缺少值或空值将导致验证错误。 | Validator | ||
requiredFieldError : String
缺少值和 required 属性为 true 时的错误消息。 | Validator | ||
source : Object
指定包含要验证的属性的对象。 | Validator | ||
trigger : IEventDispatcher
指定生成触发验证程序的组件。 | Validator | ||
triggerEvent : String
指定触发验证的事件。 | Validator |
属性 | 由以下参数定义 | ||
---|---|---|---|
actualListeners : Array [只读]
包含侦听器对象(如果有)的数组或源对象。 | Validator | ||
actualTrigger : IEventDispatcher [只读]
包含触发器对象(如果有)或源对象。 | Validator | ||
resourceManager : IResourceManager [只读]
对管理所有应用程序本地化资源的对象的引用。 | 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 | ||
返回指定对象的字符串表示形式。 | 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 | 属性 |
actualTrigger | 属性 |
actualTrigger:IEventDispatcher
[只读] 语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
包含触发器对象(如果有)或源对象。用于确定 triggerEvent
的侦听器对象。
实现
protected function get actualTrigger():IEventDispatcher
enabled | 属性 |
listener | 属性 |
property | 属性 |
required | 属性 |
public var required:Boolean = true
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
如果为 true
,则指定缺少值或空值将导致验证错误。
默认值为 true。
requiredFieldError | 属性 |
resourceManager | 属性 |
resourceManager:IResourceManager
[只读] 语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
对管理所有应用程序本地化资源的对象的引用。此项是 singleton 实例,实现 IResourceManager 接口。
此属性可用作数据绑定的源。修改此属性后,将调度 unused
事件。
实现
protected function get resourceManager():IResourceManager
source | 属性 |
source:Object
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
指定包含要验证的属性的对象。将此设置为组件或数据模型的实例。使用 MXML 中的数据绑定语法指定该值。此属性支持使用句点分隔的字符串指定嵌套属性。如果为 source
属性指定值,则应该同时为 property
属性指定值。source
属性是可选的。
默认值为 null。
实现
public function get source():Object
public function set source(value:Object):void
subFields | 属性 |
protected var subFields:Array
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
一个字符串数组,其中包含传递到 validate()
方法的 value
对象中所含属性的名称。例如,CreditCardValidator 将此属性设置为 [ "cardNumber", "cardType" ]
。此值表示传递到 validate()
方法的 value
对象应该包含 cardNumber
和 cardType
属性。
验证多个数据字段的 Validator 类的子类(如 CreditCardValidator 和 DateValidator)应该在其构造函数中分配这一属性。
trigger | 属性 |
trigger:IEventDispatcher
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
指定生成触发验证程序的组件。如果省略,则在默认情况下,Flex 使用 source
属性的值。当 trigger
调度 triggerEvent
时,执行验证。
实现
public function get trigger():IEventDispatcher
public function set trigger(value:IEventDispatcher):void
triggerEvent | 属性 |
triggerEvent:String
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
指定触发验证的事件。如果省略,则 Flex 使用 valueCommit
事件。当用户完成在控件中输入数据时,Flex 调度 valueCommit
事件。通常,当用户从组件删除焦点或者以编程方式更改属性值时发生此操作。如果希望验证程序忽略所有事件,则将 triggerEvent
设置为空字符串 ("")。
实现
public function get triggerEvent():String
public function set triggerEvent(value:String):void
Validator | () | 构造函数 |
public function Validator()
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
构造函数。
addListenerHandler | () | 方法 |
protected function addListenerHandler():void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
为从验证程序调度的 valid
和 invalid
事件设置所有侦听器。如果这些侦听器或资源之一的值发生更改,则 Validator 类的子类应先调用 removeListenerHandler()
方法,然后再调用 addListenerHandler()
方法。CreditCardValidator 和 DateValidator 类在内部使用此函数。
doValidation | () | 方法 |
protected function doValidation(value:Object):Array
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
执行此验证程序的验证逻辑,包括验证缺少值或空值是否会导致如 required
属性的值所定义的验证错误。
如果创建 validator 类的子类,则必须覆盖此方法。
参数
value:Object — 要验证的值。
|
Array — 对于无效结果,为 ValidationResult 对象的数组,其中包含验证程序所检查的每个验证失败的字段的一个 ValidationResult 对象。
|
相关 API 元素
getValueFromSource | () | 方法 |
handleResults | () | 方法 |
protected function handleResults(errorResults:Array):ValidationResultEvent
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
从错误结果数组返回 ValidationResultEvent。在内部,此函数从 doValidation()
方法获取结果,并将其置于 ValidationResultEvent 对象中。如果诸如 RegExpValidator 类之类的子类输出 ValidationResultEvent 对象的子类(如 RegExpValidationResult 对象)且需要使用其他信息填充该对象,则它们应该覆盖此函数。永远不要直接调用此函数,并且应该极少覆盖它。
参数
errorResults:Array — ValidationResult 对象的数组。
|
ValidationResultEvent — validate() 方法返回的 ValidationResultEvent。
|
initialized | () | 方法 |
isRealValue | () | 方法 |
removeListenerHandler | () | 方法 |
protected function removeListenerHandler():void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
断开从验证程序调度的 valid
和 invalid
事件的所有侦听器的连接。如果这些侦听器或资源之一的值发生更改,则子类应先调用 removeListenerHandler()
方法,然后再调用 addListenerHandler
方法。CreditCardValidator 和 DateValidator 类在内部使用此函数。
resourcesChanged | () | 方法 |
protected function resourcesChanged():void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
构造 Validator 后,每当 ResourceManager 又调度一个 "change"
事件以指示已通过某种方式更改了本地化资源时,将会调用此方法。
在下列情形中调度此事件:设置 ResourceManager 的 localeChain
属性时,资源模块完成加载时,以及调用 ResourceManager 的 update()
方法时。
子类应覆盖此方法,并在调用 super.resourcesChanged()
后,执行任何适当的操作以响应新资源值。
validate | () | 方法 |
public function validate(value:Object = null, suppressEvents:Boolean = false):ValidationResultEvent
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
执行验证并(可选)将结果通知给侦听器。
参数
value:Object (default = null ) — 要验证的可选值。如果为 null,则验证程序使用 source 和 property 属性确定值。如果指定此参数,则还应设置 listener 属性以指定验证错误消息的目标组件。
| |
suppressEvents:Boolean (default = false ) — 如果为 false ,则在验证后,验证程序会将结果通知给侦听器。
|
ValidationResultEvent — 包含验证结果的 ValidationResultEvent 对象。如果验证成功,则 ValidationResultEvent.results 数组属性为空。如果验证失败,则 ValidationResultEvent.results 数组属性包含验证程序所检查的每个字段的一个 ValidationResult 对象,对于验证失败的字段和通过验证的字段都是如此。检查 ValidationResult.isError 属性以确定字段的验证是通过还是失败。
|
相关 API 元素
validateAll | () | 方法 |
public static function validateAll(validators:Array):Array
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
调用 validators
数组中的所有验证程序。返回一个数组,其中包含每个失败验证程序的一个 ValidationResultEvent 对象。如果所有验证程序都成功,则返回空数组。
参数
validators:Array — 包含要执行的 Validator 对象的数组。
|
Array — ValidationResultEvent 对象的数组,其中数组包含每个失败验证程序的一个 ValidationResultEvent 对象。如果所有验证程序都成功,则数组为空。
|
invalid | 事件 |
mx.events.ValidationResultEvent
属性 ValidationResultEvent.type =
mx.events.ValidationResultEvent.INVALID
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
在验证失败时调度。
ValidationResultEvent.INVALID
常量可为 invalid
事件定义事件对象的 type
属性值。该常量的值是“invalid”。
事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false |
currentTarget | 用于定义处理该事件的事件侦听器的对象。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。 |
field | 验证失败的字段名称。 |
message | 单个字符串,其中包含结果 Array 中所有 ValidationResult 对象的错误消息。 |
results | ValidationResult 对象的数组,每个对象对应一个验证的字段。 |
target | 调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。 |
valid | 事件 |
mx.events.ValidationResultEvent
属性 ValidationResultEvent.type =
mx.events.ValidationResultEvent.VALID
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
在验证成功时调度。
ValidationResultEvent.VALID
常量可为 valid
事件定义事件对象的 type
属性值。该常量的值是“valid”。
事件对象的属性有下列值:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false |
currentTarget | 用于定义处理该事件的事件侦听器的对象。例如,如果您使用 myButton.addEventListener() 注册某个事件侦听器,则 myButton 为 currentTarget 的值。 |
field | 一个空字 String。 |
message | 一个空字 String。 |
results | 一个空 Array。 |
target | 调度该事件的 Object;它不一定是侦听该事件的 Object。使用 currentTarget 属性始终可以访问侦听事件的 Object。 |
DECIMAL_DIGITS | 常量 |
protected static const DECIMAL_DIGITS:String = "0123456789"
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
包含十进制数字 0 到 9 的字符串。
ROMAN_LETTERS | 常量 |
protected static const ROMAN_LETTERS:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
包含大写和小写罗马字母(“A”到“Z”和“a”到“z”)的字符串。
<?xml version="1.0" encoding="utf-8"?> <!-- Simple example to demonstrate the Validator class. --> <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"> <fx:Script> <![CDATA[ // Import necessary classes. import mx.controls.Alert; import mx.events.ValidationResultEvent; // Event listener for the valid and invalid events. private function handleValid(evt:ValidationResultEvent):void { if (evt.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!"); } ]]> </fx:Script> <fx:Declarations> <!-- 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);" /> </fx:Declarations> <s:Panel title="Validator Example" width="75%" height="75%" horizontalCenter="0" verticalCenter="0"> <mx:Form left="10" right="10" top="10" bottom="10"> <mx:FormItem> <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> <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> </s:Panel> </s:Application>
Tue Jun 12 2018, 11:04 AM Z