0

我在我的 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

有什么线索吗?

4

3 回答 3

1

通常我会将errorString设置为空字符串;我在带有红色字符串的组件实例上执行此操作。我相信在这种情况下,它将是您的触发组件:

login_txt.errorString = '';
password_txt.errorString = '';

如果您设置 errorString 的目标与指定为验证器源的实际组件相同,我不清楚基于提供的有限代码。可能是,我们只是没有提供足够的信息来确定。

于 2012-10-20T16:19:35.610 回答
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.
    }
}
于 2015-05-09T17:34:17.480 回答
0

除了将错误字符串设置为空之外,我还必须调用 showFocus(),否则红色边框不会消失。

login.errorString = '';
login.focusManager.showFocus();
于 2018-07-12T09:32:59.013 回答