| 语言版本: | ActionScript 3.0 |
| 产品版本: | Flex 3 |
| 运行时版本: | Flash Player 9, AIR 1.1 |
隐藏 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"
/>
相关 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():IEventDispatcherenabled | 属性 |
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():IResourceManagersource | 属性 |
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):voidsubFields | 属性 |
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):voidtriggerEvent | 属性 |
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):voidValidator | () | 构造函数 |
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
显示 MXML 语法