2011-01-13 33 views
0

我正在使用flex 3.5,并且验证器出现问题。我有一个动态地具有o的字段没有一个分配的验证器,问题是在特定时刻该字段没有分配验证器,但textInput有一个红色边框。Flex验证器问题

我不知道我必须删除红色标记么?

这里是我的验证的例子:

这是验证:

<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; 
} 

而且我有一个按钮,被启用或禁用,因为它有一个布尔值VAR isFormValid绑定。

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

谢谢先进。

回答

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