次のコードは、次のように動作をトリガされ有効なフォーマットマスク。。 Alertboxの "ok"ボタンを押すと、txtOther.focusoutが再びトリガされます。 つまり、警告のOKを押した直後に同じALERTが再度表示されます。アラートが複数回
私はウルの参照用のコードを追加しました:
//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イベントがトリガされます。これが何度も繰り返されます。 –