簡體   English   中英

如何以編程方式從Flex組件中刪除驗證

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM