Flex中利用CurrencyValidator和CurrencyFormatter类验证并且格式化数字的例子
By Minidxer | August 3, 2008
接下来的例子演示了Flex中如何利用CurrencyValidator和CurrencyFormatter类,验证并且格式化数字。
让我们先来看一下Demo(可以右键View Source或点击这里察看源代码):
下面是完整代码(或点击这里察看):
Download: main.mxml
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
- layout="vertical"
- verticalAlign="middle"
- backgroundColor="white">
- <mx:Script>
- <![CDATA[
- [Bindable]
- [Embed(source="assets/bulletCheck.png")]
- public var BulletCheck:Class;
- [Bindable]
- [Embed(source="assets/bulletCritical.png")]
- public var BulletCritical:Class;
- ]]>
- </mx:Script>
- <mx:Script>
- <![CDATA[
- import mx.controls.TextInput;
- import mx.events.ValidationResultEvent;
- private function formatString(evt:FocusEvent):void {
- var ti:TextInput = TextInput(evt.currentTarget);
- if (validateCurrency()) {
- ti.data = ti.text;
- ti.text = currencyFormatter.format(ti.data);
- } else {
- ti.setFocus();
- }
- }
- private function unformatString(evt:FocusEvent):void {
- var ti:TextInput = TextInput(evt.currentTarget);
- ti.text = String(ti.data);
- }
- private function validateCurrency():Boolean {
- var isValid:Boolean = false;
- var result:ValidationResultEvent = currencyValidator.validate();
- switch (result.type) {
- case ValidationResultEvent.VALID:
- isValid = true;
- image.source = BulletCheck;
- break;
- case ValidationResultEvent.INVALID:
- currencyValidator.source.setFocus();
- image.source = BulletCritical;
- break;
- }
- return isValid;
- }
- ]]>
- </mx:Script>
- <mx:CurrencyFormatter id="currencyFormatter"
- currencySymbol="$"
- useThousandsSeparator="true"
- precision="2" />
- <mx:CurrencyValidator id="currencyValidator"
- currencySymbol="$"
- source="{textInput}"
- property="text" />
- <mx:Form>
- <mx:FormHeading label="Enter base price" />
- <mx:FormItem label="Price:" direction="horizontal" required="true">
- <mx:TextInput id="textInput"
- data=""
- focusIn="unformatString(event)"
- focusOut="formatString(event)" />
- <mx:Image id="image" verticalAlign="bottom" width="20" />
- </mx:FormItem>
- <mx:FormItem>
- <mx:Button id="button"
- label="Validate"
- click="validateCurrency()" />
- </mx:FormItem>
- </mx:Form>
- </mx:Application>
代码:Peter deHaan 翻译/整理/编译:中文Flex例子
Topics:
Flex |
No Comments » |
Tags: CurrencyFormatter, currencySymbol, CurrencyValidator, validate