Flex验证器问题

时间:2011-01-13 20:23:53

标签: flex actionscript validation

我正在使用flex 3.5,我遇到验证器问题。我有一个动态有o的字段没有一个asigned验证器,问题是在特定时刻该字段没有分配验证器但textInput有一个红色边框。

我不知道如何移除红色标记?

以下是我的验证器示例:

这是验证器:

<mx:CreditCardValidator id="ccV" 
        cardTypeSource="{cardTypeCbx.selectedItem}"  
        cardTypeProperty="data"
        cardNumberSource="{ccNumberTextInput}"  
        cardNumberProperty="text" required="true"/>

我有一个名为ccNumberTextInput的textInput和一个名为cardTypeCbx的组合

当我必须设置验证器时:

validatorArr = new Array();
validatorArr.push(ccV);
validateForm();

当我不需要它时:

validatorArr = new Array();
validateForm();

validateForm函数是:

private function validateForm():void
{
    var validatorErrorArray:Array = Validator.validateAll(validatorArr);
    isFormValid = validatorErrorArray.length == 0;
}

我有一个启用或禁用的按钮,因为它具有与布尔变量isFormValid的绑定。

最奇怪的是,当删除验证器时,按钮变为启用但红色边框仍在textInput中。

先谢谢。

1 个答案:

答案 0 :(得分:0)

您应该在需要时启用/禁用每个验证器,而不是使用验证器修改数组。因为即使您没有数组中的所有验证器,验证器与它验证的组件之间的绑定仍然存在。然后,可能会发生两件事:先前的验证仍然存在,或者另一个验证可以由该绑定触发。

有关详细信息,请参阅http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/validators/Validator.html?filter_flex=4.1&filter_flashplayer=10.1&filter_air=2#enabled