我在flex移动应用程序中使用验证器。 我想在验证器触发错误时删除红色边框。
<mx:EmailValidator id="emailV" source="{login_txt}" property="text" triggerEvent="click" trigger="{connexion_btn}" />
<mx:StringValidator id="passwordV" source="{password_txt}" property="text" trigger="{connexion_btn}" triggerEvent="click" />
我试过了:
target.errorString = null; // not good
有任何线索吗?
答案 0 :(得分:1)
通常我会将errorString设置为空字符串;我在组件的实例上做了这个,上面有红色字符串。我相信在这种情况下,它将是你的触发器组件:
login_txt.errorString = '';
password_txt.errorString = '';
如果您设置errorString的目标与指定为验证程序源的实际组件相同,则根据提供的有限代码我不清楚。可能是,我们没有提供足够的信息来确定。
答案 1 :(得分:0)
红色光晕在spark.skins.spark.ErrorSkin中定义,它是UIComponent的errorSkin属性的默认值。您不能将此属性设置为null,但您可以扩展ErrorSkin类并覆盖生成发光的方法(即updateDisplayList和processBitmap)。
我创建了一个NullFocusSkin,用于消除红色错误发光和蓝色焦点发光。我将组件的errorSkin和focusSkin属性设置为那个并且嘿presto - 没有更讨厌的光晕,也不需要手动清除errorString!
import spark.skins.spark.HighlightBitmapCaptureSkin;
public class NullFocusSkin extends HighlightBitmapCaptureSkin
{
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
{
// Do nothing.
}
override protected function processBitmap():void
{
// Do nothing.
}
}
答案 2 :(得分:0)
除了将错误字符串设置为空之外,我还必须调用showFocus(),否则红色边框不会消失。
Codepen link