[英]How to remove validation programmatically from flex component
如何以編程方式從Flex組件中刪除驗證這是我的方法
public static function validateRequired(txt:TextInput, errorMessage:String="This field is required"):Boolean
{
var v:Validator = new Validator();
v.listener = txt;
var result:ValidationResultEvent = v.validate(txt.text);
var returnResult:Boolean = (result.type == ValidationResultEvent.VALID);
//Alert.show("validation result is " + returnResult);
if (!returnResult) {
v.requiredFieldError = errorMessage;
}
return returnResult;
}
但是,每次我創建新的驗證器時,彈出窗口都會包含多個消息,例如
這是必填欄。
這是必填欄。
如何刪除組件附帶的錯誤消息?
我有同樣的問題,我知道我必須在下一個驗證之前清除上一個驗證。
private function resetValidationWarnings():void {
for each (var validator:Validator in arrValidators) {
validator.dispatchEvent(new ValidationResultEvent(ValidationResultEvent.VALID));
}
}
這有點像POG,但工作已完成!
希望能幫助到你 !
Validator.enabled屬性使您可以啟用和禁用驗證器。 當enabled屬性的值為true時,將啟用驗證器;否則,將啟用驗證器。 如果值為false,則禁用驗證器。 禁用驗證器時,它不會分派任何事件,並且validate()方法將返回null。
例如,您可以使用數據綁定來設置enabled屬性,如以下代碼所示:
<?xml version="1.0"?>
<!-- validators\EnableVal.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:ZipCodeValidator id="zcVal"
source="{inputA}"
property="text"
required="true"
enabled="{enableV.selected}"/>
<mx:TextInput id="inputA"/>
<mx:TextInput/>
<mx:CheckBox id="enableV"
label="Validate input?"/>
</mx:Application>
我也遇到類似的問題。 就我而言,根本原因是每次調用驗證時都創建了驗證器對象(就像您所做的那樣)。 結果,UIComponent將其視為不同的驗證器對象(請參見UIComponent.errorObjectArray),並再次存儲錯誤消息。 解決方案是擁有一個全局或靜態驗證器,並為我解決重復的錯誤消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.