如何以编程方式从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;
}
但是,每次我创建新的验证器时,弹出窗口都包含多个消息,如
此字段是必填字段 此字段是必填字段。
如何删除附带组件的错误消息?
答案 0 :(得分:4)
我遇到了同样的问题,我明白我必须在下一次验证之前清除最后一次验证。
private function resetValidationWarnings():void {
for each (var validator:Validator in arrValidators) {
validator.dispatchEvent(new ValidationResultEvent(ValidationResultEvent.VALID));
}
}
这是一个有点POG,但它完成了工作!
希望它有所帮助!答案 1 :(得分:3)
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>
答案 2 :(得分:0)