Apache flex 如何以编程方式从flex组件中删除验证
如何以编程方式从flex组件中删除验证 这是我的方法Apache flex 如何以编程方式从flex组件中删除验证,apache-flex,actionscript-3,Apache Flex,Actionscript 3,如何以编程方式从flex组件中删除验证 这是我的方法 public static function validateRequired(txt:TextInput, errorMessage:String="This field is required"):Boolean { var v:Validator = new Validator(); v.listener = txt; va
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;
}
但是,每次我创建新的验证器时,弹出窗口都包含多条消息,如
此字段为必填项。此字段为必填字段。
如何删除组件附带的错误消息?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>
我也遇到了同样的问题,我知道我必须在下一次验证之前清除上一次验证
private function resetValidationWarnings():void {
for each (var validator:Validator in arrValidators) {
validator.dispatchEvent(new ValidationResultEvent(ValidationResultEvent.VALID));
}
}
这有点像POG,但它完成了任务
希望有帮助 我也遇到了类似的问题。在我的例子中,根本原因是每次调用验证时我都创建了validator对象(就像您所做的那样)。因此,UIComponent将其视为不同的验证器对象(请参见UIComponent.errorObjectArray),并再次存储错误消息。解决方案是使用全局或静态验证器,它可以为我解决重复的错误消息。hmm。。没关系。。但我的问题是我不想用mxml编写所有的验证器。我想在提交时检查像Util.validateRequired(txt)这样的内容。。当我两次按submit键而未在文本框中写入任何内容时,验证失败,我会在错误弹出窗口中两次收到相同的错误消息。关闭另一个验证程序,然后通过按钮单击事件调用您的验证程序功能。