Flex TextInput 动态判断输入内容
<?xml version="1.0" encoding="utf-8"?>
<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" minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
import spark.events.TextOperationEvent;
[Bindable]
private var errorStr:String = "";
protected function numInput_changeHandler(event:TextOperationEvent):void
{
var exp:RegExp= /[\d,,]/g;
var inputText:String = numInput.text+'';
if(inputText==''){
return;
}
if(inputText.match(/[,,]$/)){
inputText = inputText.substring(0,inputText.length-1);
}
var temp:String = inputText.replace(exp,'');
var isRight:Boolean = true;
if(temp==''){
var arr:Array = inputText.split(/[,,]/);
for(var i:int =0;i<arr.length;i++){
var oneNum:String = arr[i];
if(oneNum==null || (oneNum+'')== ''){
isRight = false;
}
}
}else{
isRight = false;
}
if(isRight){
numInput.setStyle('borderColor','black');
alarmLabel.visible = false;
}else{
numInput.setStyle('borderColor','0xFF0000');
alarmLabel.visible = true;
}
}
]]>
</fx:Script>
<fx:Declarations>
</fx:Declarations>
<s:HGroup width="100%" height="30" horizontalAlign="left" paddingLeft="5"
paddingRight="5" verticalAlign="middle">
<s:Label width="60" text="号码:" textAlign="right"/>
<s:TextInput id="numInput" width="200" change="numInput_changeHandler(event)"
errorString="{errorStr}"/>
<s:Spacer width="16"/>
<s:Label id="alarmLabel" visible="false" color="0xFF0000" text="只允许输入数字以“,”隔开"/>
</s:HGroup>
</s:Application>