我正在使用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中。
先谢谢。
答案 0 :(得分:0)
您应该在需要时启用/禁用每个验证器,而不是使用验证器修改数组。因为即使您没有数组中的所有验证器,验证器与它验证的组件之间的绑定仍然存在。然后,可能会发生两件事:先前的验证仍然存在,或者另一个验证可以由该绑定触发。