下面的代码工作以下列方式:警报被触发多次
当我在txtother.textbox输入不正确的价值观和重点时,警报将显示为“请输入有效的格式掩码“。。 按下警告框中的“ok”按钮后,txtOther.focusout即使再次触发。 即紧接在按下OK的警报之后,再次显示相同的ALERT。
我添加的代码为UR参考:
//in mxml File:
<mx:Canvas label="General" >
<mx:VBox>
<mx:Canvas id="cvsGeneral">
<mx:TextInput id="txtOther" focusOut="txtOther_Validate();"/>
</mx:Canvas>
</mx:VBox>
</mx:Canvas>
<mx:Canvas width="100%" height="5%" horizontalScrollPolicy="off" verticalScrollPolicy="off">
<mx:HBox width="80%" height="100%" horizontalAlign="left">
<mx:Button width="64" label="Save" id="btnSave" click="btnSave_Click();" focusIn="txtOther_Validate();"/>
</mx:HBox>
</mx:Canvas>
//Validating action script is as follows:
public function txtOther_Validate():void{
var formatMask: String = null;
if(txtOther.editable && txtOther.enabled){
if(txtOther.text != ""){
formatMask = txtOther.text;
if(conditions to validate){
//some expression
}
if(formatMask.length < 12){
Alert.show("Please enter format mask with minimum 12 digits.");
txtOther.setFocus();
return;
} VariableEditControl.getInstance().validateFormatMask(txtOther.text,validateFormatMask_Result,validateFormatMask_Fault, validateFormatMask_Error);
}
}
}
public function validateFormatMask_Result(event:PLEvent): void {
var result:String = event.getData().toString(); // here lets assume that the result variable is stored as "FAILURE"
if(result == "FAILURE"){
Alert.show("Please enter a valid Format Mask.");
txtOther.setFocus(); //
}
}
我不希望将提醒一次又一次地来.. 我需要它以这样一种方式,当警报的OK按钮被按下。 txtother.text
应该重点关注,警报不应该像以前一样重复。
是否有一个原因,你做你自己的自定义验证,而不是使用Flex中的可用验证类? –
@J_A_X:是的,要求就是这样。 –
我认为问题是这样的: 当我按下提示框的OK按钮时,TxtOther.textbox的FocusOut事件被触发,这就是为什么警报会一次又一次地出现。 –