下面的代碼工作以下列方式:警報被觸發多次
當我在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事件被觸發,這就是爲什麼警報會一次又一次地出現。 –